[英]Generic constraint: Enforce type to have static function and constructor with parameters
我知道你可以寫:
class GenericClass<T> where T : new()
{
}
強制執行T
有一個空構造函數。
我的Qs是:
你能強制說T
有一個具有特定參數類型的構造函數嗎? 喜歡:
class SingletonFactoryWithEmptyConstructor<T> where T : new(int)
你能強制執行T
有一個靜態函數(比方說, void F()
),這樣你就可以在泛型類中使用這個函數嗎? 喜歡 :
class GenericClass<T> where T : void F() { void G () { TF(); } }
我知道你可以指定T
實現一個接口,但我不希望這樣。 我想指定T
具有靜態函數。
不,在C#中沒有這樣的東西。
我之前曾建議“靜態接口”可以合理地表達這一點。 它們只對泛型類型約束有用(我懷疑,無論如何)但是你可以表達:
在我看來,這些要點中的最后一點特別有趣,允許使用具有合適的加法和除法運算符的數字類型的通用“平均”方法。
我相信MS的一些人已經考慮過類似的東西,但我沒有聽到任何暗示他們正在積極研究的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.