是使用泛型时,T默认情况下是不可以被初始化的,只能通过传值来赋值,这个时候可以使用类型约束来保证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的接口