class A<T> where T:new()
這是類型參數約束,where表名了對類型變量T的約束關系。where T:A 表示類型變量是繼承於A的,或者是A本省。where T: new()指明了創建T的實例應該使用的構造函數。
.NET支持的類型參數約束有以下五種:
where T: struct T必須是一個結構類型
where T: class T必須是一個類(class)類型,不是結構(structure)類型
where T: new() T必須要有一個無參構造函數
where T: NameOfBaseClass T必須繼承名為NameOfBaseClass的類
where T: NameOfInterface T必須實現名為NameOfInterface的接口