[转] c# 泛型 类型参数上的限制(where T:class,new())

原:https://blog.csdn.net/hzh_csdn/article/details/53264497

本来就对泛型不太熟悉,再加上还是c#上的,更加是一头雾水,看见个

  public List<T> ConvertTo<T>(DataTable datatable) where T : new()
  • 1

就不知所措了。 
以下为MSDN上的解释:

约束描述
where T: struct 此类型参数必须是值类型,除了Nullable类型的所有类型都可以。
where T: class 此类型参数必须是引用类型。
where T: new() 此类型参数必须有一个公有的无参构造函数。当和其它约束参数一起使用时,new()约束必须放在最后。
where T: 此类型参数必须是或者继承自指定的基类。
where T: 此类型参数必须是或者实现了指定的接口。
where T: U 类型参数T必须是或者继承于类型参数。

原文在此(英文) 
现在清楚多了~

posted @ 2018-08-01 17:28  iKobe  阅读(4101)  评论(0)    收藏  举报