我有一個類中的DLL我想繼承這個類在我下面的類繼承泛型類
public abstract class WidgetBuilderBase<TViewComponent, TBuilder>
我上網淨看起來如下
// Summary:
// View component Builder base class.
public abstract class WidgetBuilderBase<TViewComponent, TBuilder> : IHtmlString, IHideObjectMembers
where TViewComponent : global::Kendo.Mvc.UI.WidgetBase
where TBuilder : global::Kendo.Mvc.UI.Fluent.WidgetBuilderBase<TViewComponent, TBuilder>
{
}
但大部分的網站上我沒有得到滿意的答案 其中大部分說我們不能繼承泛型類。爲什麼不能繼承泛型類。
我嘗試做下面的代碼
public abstract class WidgetBuilderBase<TViewComponent, TBuilder> : Kendo.Mvc.UI.Fluent.WidgetBuilderBase<TViewComponent, TBuilder>
{
}
但它給了我下面的錯誤。
類型「TBuilder」不能用作 一般類型的類型參數「TBuilder」或方法 「Kendo.Mvc.UI.Fluent.WidgetBuilderBase」。 沒有從 'TBuilder'到 'Kendo.Mvc.UI.Fluent.WidgetBuilderBase'的裝箱轉換或類型參數轉換。
與TViewComponent同樣的錯誤。如何解決這個問題... :(
在繼承泛型類的任何幫助
您可能需要將相同的通用約束添加到派生類型中... – horgh
但是我想在運行時使其變爲動態 –
您想要什麼動態?當繼承泛型類時,你也繼承它的約束 – horgh