[转] 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必须是或者继承于类型参数。

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM