//使用泛型约束,约束了T只能是值类型 class MyClass<T> where T : struct { } //使用泛型约束,约束了T只能是引用类型 class MyClass<T> where T : class { } //限制T必须是实现了某个接口的类型 //要求T必须是实现了IComparable接口的子类型对象或者就是该接口 class MyClass<T> where T : IComparable { } //要求T必须是Person类型,或者是Person类的子类 class MyClass<T> where T : Person { } //要求T必须是Person类型,或者是Person类的子类 class MySchool<T> where T : Person where T : new()//要求将来传递进来的类型必须具有一个无参数的构造函数 { } //对T没有要求,但是V必须是T类型或者T类型的子类型 class MyClass<T, V> where V : T { }
原文地址:http://blog.csdn.net/duoduoluojia/article/details/46311121