Framework2.0泛型約束

Framework2.0泛型約束

Framework2.0泛型約束約    束
 說    明
 
where T : struct
 使用結構約束,類型T必須是值類型
 
where T : class
 類約束指定,類型T必須是引用類型
 
where T : IFoo
 指定類型T必須執行接口IFoo
 
where T : Foo
 指定類型T必須派生於基類Foo
 
where T : new()
 這是一個構造函數約束,指定類型T必須有一個默認構造函數
 
where T : U
 這個約束也可以指定,類型T1派生於泛型類型T2。該約束也稱爲裸類型約束
 
  

在CLR 2.0中,只能爲默認構造函數定義約束,不能爲其他構造函數定義約束。 使用泛型類型還可以合併多個約束。where T : IFoo,new()約束和MyClass聲明指定,類型T必須執行IFoo接口,且必須有一個默認構造函數。 public class MyClass where T : IFoo, new() { //... 提示: 在C#中,where子句的一個重要限制是,不能定義必須由泛型類型執行的運算符。運算符不能在接口中定義。在where子句中,只能定義基類、接口和默認構造函數。
發佈了39 篇原創文章 · 獲贊 12 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章