泛型 (C# 程式設計手冊)

泛型是在 C# 語言和 Common Language Runtime (CLR) 的 2.0 版中加入的功能。 泛型將型別參數的概念引進 .NET Framework 中,使得類別和方法在設計時,可以先行擱置一個或多個型別規格,直到用戶端程式碼對類別或方法進行宣告或執行個體化時再行處理。 例如,您可以使用泛型型別參數 T,撰寫一個單一類別供其他用戶端程式碼使用,而不會在執行階段產生轉型或 boxing 作業的成本或風險,如下所示:

// Declare the generic class.
public class GenericList<T>
{
    void Add(T input) { }
}
class TestGenericList
{
    private class ExampleClass { }
    static void Main()
    {
        // Declare a list of type int.
        GenericList<int> list1 = new GenericList<int>();

        // Declare a list of type string.
        GenericList<string> list2 = new GenericList<string>();

        // Declare a list of type ExampleClass.
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}

泛型概觀

  • 使用泛用型別以最佳化程式碼重複使用、型別安全性和效能。

  • 泛型的最常見用法是建立集合類別。

  • .NET Framework 類別庫包含 System.Collections.Generic 命名空間中的數種新泛用集合類別。 在任何可能的情況下都應該使用這些類別,而不是使用類似在 System.Collections 命名空間中的 ArrayList 類別。

  • 您可以建立自己的泛用介面、類別、方法、事件和委派 (Delegate)。

  • 泛用類別可能會被限制為啟用對特定資料型別上的方法進行存取。

  • 在泛型資料型別中所使用型別的資訊,可以在執行階段透過反映 (Reflection) 取得。

相關章節

如需詳細資訊,請參閱下列主題:

C# 語言規格

如需詳細資訊,請參閱 C# 語言規格

請參閱

參考

System.Collections.Generic

型別 (C# 程式設計手冊)

<typeparam> (C# 程式設計手冊)

<typeparamref> (C# 程式設計手冊)

概念

C# 程式設計手冊