[轉] 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