public class Example
{
public static T GetDefaultValue<T>()
{
// return ???
}
}
不使用泛型,我可以用什麼辦法來約束在傳遞給GetDefaultValue功能的一類與實現IDisposable參數的構造函數的類型? 我將如何實例化該類型的實例以從GetDefaultValue函數返回?
public class Example
{
public static T GetDefaultValue<T>()
{
// return ???
}
}
不使用泛型,我可以用什麼辦法來約束在傳遞給GetDefaultValue功能的一類與實現IDisposable參數的構造函數的類型? 我將如何實例化該類型的實例以從GetDefaultValue函數返回?
我很困惑你的意思..但不使用泛型(沒有泛型?),你可以將類型約束到一個接口。
public ISomeInterface GetDefaultValue(ISomeInterface theObject)
{
...
}
有了泛型,你可以做
public static T GetDefaultValue<T>() where T : new(), IDisposable
{
return new T();
}
任何類型的設置T
是必須有一個默認的構造函數,雖然。這樣,如果GetDefaultValue()
返回IDisposable
,那麼調用GetDefaultValue()
將會得到您需要的精確類型,而無需投射。
我假設你不想要泛型解決方案,因爲實例化泛型類型的能力不是衆所周知的。我個人偶然發現了這個,男孩,這是救命吧!
我不明白,你的例子類有通用的'T' –