一共有5种不同的泛型约束
值类型约束:要求泛型参数必须是值类型,例如int,short以及自定义的stuct等
public class MyClass2
where T : struct//这个泛型类只接受值类型的泛型参数
{
}
引用类型约束:要求泛型参数必须是引用类型,例如string,object,以及自定义的class
public class MyClass
where T:class//这个泛型类只接受引用类型的泛型参数
{
}
构造函数约束:要求泛型参数必须有构造函数
public class MyClass3
where T : new()
{
}
接口约束:要求泛型参数必须实现某个接口
public class MyClass4
where T : System.IComparable
{
}
基类约束:要求泛型参数必须继承某个基类
public class MyClass5
where T : Customer
{
}