C#泛型类的类型约束

是使用泛型时,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的接口
原文地址:https://www.cnblogs.com/jerryqi/p/9693243.html