我有一個類層次結構,看起來像這樣:類型推論的方法,以仿製藥和類繼承
class Base<TElement>
{
public TElement Element { get; set; }
}
class Concrete : Base<string>
{
}
我想寫接受Base
子類的方法:
public TConcrete DoSomething<TConcrete, TElement>()
where TConcrete : Base<TElement>
{
}
有什麼方法可以定義DoSomething,而不必定義TElement
?
理想的解決方案是,如果編譯器可以自動計算TElement
,所以調用代碼是這樣的:
var item = DoSomething<Concrete>();
我使用C#4.0。
'TConcrete'和'TElement'類型與返回或參數類型無關? –
TConcrete是返回類型,我編輯了我的問題 – kshahar
它看起來像你想要[更高級的類型](http://en.wikipedia.org/wiki/Kind_(type_theory)) c#,語言不支持 –