在一些开源代码里经常能看到下面的这段代码,那这段代码是什么意思呢?
class A<T> where T : class, new()
这里的Where 其实和sql中的 where 是一样的,下面这代码用来约束泛型 T 必须有一个无参构造函数
常见的语法
class A<T> where T : class, new() //约束泛型必须是引用类型,必须有一个无参构造 where T: class // T必须是一个类(class)类型,不是结构(structure)类型 where T: new() // T必须要有一个无参构造函数 where T: struct // T必须是一个结构类型 where T: NameOfBaseClass // T必须继承名为NameOfBaseClass的类 where T: NameOfInterface // T必须实现名为NameOfInterface的接口
文章评论