泛型

来源:互联网 发布:数控外圆切削编程 编辑:程序博客网 时间:2024/06/05 00:49
泛型参数能够指定的约束有
1、指定参数是值类型(除Nullable外),可以有如下形式:
public void Method<T>(T t)where T :struct{}
2、指定参数是引用类型,可以有如下形式:
public void Method<T>(T t)where T : class{}
public void Method<T>(T t)where T : Salary{}
注意:object不能用来作为约束
3、指定参数具有无参数的公共构造方法,可以有如下形式:
public void Merhod<T>(T t) where T:new (){}
注意:CLR目前只支持无参构造方法约束
4、指定参数必须是指定的基类,或者派生至指定的基类
5、指定参数必须是指定的接口,或者实现指定的接口
6、指定T提供的类型参数必须是由U提供的参数,或者派生自U提供的参数,如下形式:
calss Sample<U>{
public void Method<T>(T t) where T:U{}
}
7、可以对同一类型的参数应用多个约束,并且约束自身可以是泛型类型