是使用泛型時,T默認狀況下是不能夠被初始化的,只能經過傳值來賦值,這個時候可使用類型約束來保證T是能夠被約束的。函數
.NET支持的類型參數約束有如下五種:blog
where T: struct //T必須是一個結構類型 where T: class //T必須是一個類(class)類型,不是結構(structure)類型 where T: new() //T必需要有一個無參構造函數 where T: NameOfBaseClass //T必須繼承名爲NameOfBaseClass的類 where T: NameOfInterface //T必須實現名爲NameOfInterface的接口