類型參數我有以下簽名使用混凝土類作爲繼承了通用基礎類
public class ReportViewModelBaseDTO<VT,DT>
和具體的類像這樣的
public class ChartViewModelDTO:ReportViewModelBaseDTO<ChartViewModel,ChartViewModelDTO>
我的問題是一個基類,我知道,我的泛型基類的第二個類型參數應該是具體類的類型。我不想一直重複自己的命名,然後重複這個名字作爲類型參數。
有什麼辦法讓我的泛型基類將實際的具體類作爲類型參數?有沒有人有更好的方法來做到這一點的任何建議?
編輯:
我要如何使用DT低於一個例子。我從VT類型的Automapper創建一個類型爲DT的實例。
public static DT Create(VT viewModel)
{
return Mapper.Map<VT,DT>(viewModel);
}
你可以提供你想要如何使用DT請用例?這感覺有點奇怪,基類需要知道它是基類的具體實現。我可以看到一些用途(例如從方法返回正確的類型)但不是很多。 – Joey
C#沒有辦法強制執行您所要求的要求,強制將基類的泛型T作爲派生類的類型。看到[這個相關的問題](http://stackoverflow.com/questions/3783321/why-does-this-generic-constraint-compile-when-it-seems-to-have-a-circular-referen/3789193#3789193 )更多。 –