如下是泛型常用的寫法:
class A<T> where T:new()
這是類型參數約束,其中where表示對類型變量T的約束關系。
其中,最常用的當屬class和new()兩種約束。泛型可以是值類型也可以是引用類型,class表示這個T為引用類型,new()表示這個泛型必須有構造函數否則不能使用。
除了class和new()之外,還有其他的約束關系。.NET支持的類型參數約束有以下五種:
where T: class // T必須是一個類(class)類型,不是結構(structure)類型 where T: new() // T必須要有一個無參構造函數 where T: struct // T必須是一個結構類型 where T: NameOfBaseClass // T必須繼承名為NameOfBaseClass的類 where T: NameOfInterface // T必須實現名為NameOfInterface的接口