.net开发中,我们经常在一个公共的父类文件中需要传入一个泛型,对于这个泛型,我们还可以对其进行类型参数约束。
.net支持的类型参数约束有5种:
1. where T:struct T必须是一个结构类型
2. where T:class T必须是一个类(class),不能是结构类型,引用类型
3. where T:new() T必须要有一个无参构造函数,可以被new()
4. where T:NameOfBaseClass T必须继承名为NameOfBaseClass的类
5. where T:NameOfInterface T必须实现名为NameOfInterface的接口
eg. public class RepositoryFactory<T> where T : class,new() {
}
T是一个类,也是一个无参的构造函数