泛型 (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# 語言規格。