C# T 泛型类,泛型方法的约束条件用法

class A<T> where T:new()

这是类型参数约束,where表名了对类型变量T的约束关系。where T:A 表示类型变量是继承于A的,或者是A本省。where T: new()指明了创建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的接口

猜你喜欢

转载自www.cnblogs.com/itsone/p/10303101.html