泛型支持的幾種約束類型


約束 說明
where T:struct 對於結構約束,類型T必須是值類型
where T:class 類約束指定類型T必須是引用類型
where T:IFoo 指定類型T必須實現接口IFoo
where T:Foo 指定類型T必須派生自基類Foo
where T:new() 這是一個構造函數約束,指定類型T必須有一個默認構造函數
where T1:T2 這個約束也可以指定,類型T1派生自泛型類型T2

注意:只能為默認構造函數定義構造函數約束,不能為其他構造函數定義構造函數約束。

使用泛型類型還可以合並多個約束。where T:IFoo,new()約束和MyClass<T>聲明指定,類型T必須實現IFoo接口,且必須有一個默認構造函數。

注意:在C#中,where子句的一個重要限制是,不能定義必須由泛型類型實現的運算符。運算符不能再接口中定義。在where子句中,指定定義基類、接口和默認構造函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM