.NET支持的類型參數約束有如下五種:函數
where T : struct | T必須是一個結構類型
where T : class | T必須是一個Class類型
where T : new() | T必需要有一個無參構造函數
where T : NameOfBaseClass | T必須繼承名爲NameOfBaseClass的類
where T : NameOfInterface | T必須實現名爲NameOfInterface的接口繼承
泛型的Where接口
泛型的Where可以對類型參數做出限定。有如下幾種方式。class
·where T : struct 限制類型參數T必須繼承自System.ValueType。
·where T : class 限制類型參數T必須是引用類型,也就是不能繼承自System.ValueType。泛型
·where T : new() 限制類型參數T必須有一個缺省的構造函數構造函數
·where T : NameOfClass 限制類型參數T必須繼承自某個類或實現某個接口。引用
以上這些限定能夠組合使用,好比: public class Point where T : class, IComparable, new()new