1.泛型类
泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。
您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。下面这个简单的实例将有助于您理解这个概念:
2.泛型方法
我们可以通过类型参数声明泛型方法。下面的程序说明了这个概念:
3.泛型约束
在声明泛型方法/泛型类的时候,可以给泛型加上一定的约束来满足我们特定的一些条件。比如:
泛型限定条件(类型参数就是T):
T:结构(类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型)
T:类 (类型参数必须是引用类型,包括任何类、接口、委托或数组类型)
T:new() (类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时new() 约束必须最后指定)
T:<基类名> 类型参数必须是指定的基类或派生自指定的基类
T:<接口名称> 类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。
T:U