0
我真的想這樣做......爲什麼不能聲明一個也繼承的通用基類?
public class BaseController<T> where T : IPageModel, Controller
但視覺工作室犯規喜歡它。控制器是MVC中的一個類。我的頁面模型可以確保獲得某些模型的東西。我的語法錯了嗎?
我真的想這樣做......爲什麼不能聲明一個也繼承的通用基類?
public class BaseController<T> where T : IPageModel, Controller
但視覺工作室犯規喜歡它。控制器是MVC中的一個類。我的頁面模型可以確保獲得某些模型的東西。我的語法錯了嗎?
正確的語法是:下面的where
關鍵字
public class BaseController<T>: Controller where T : IPageModel
一切都被認爲是通用的約束聲明。在你的情況下,你想讓你的類從Controller
派生,所以你首先指出這一點,並在最後指定通用約束。
現在你的實際控制人也從這個基本控制器得出:
public class FooController: BaseController<Foo>
{
...
}
這裏顯然Foo
必須實現IPageModel
這是由通用約束強制執行:
public class Foo: IPageModel
{
...
}
非常感謝! – Exitos
什麼是應該繼承/實現呢? 'BaseController'到'Controller'和'T'到'IPageModel'? –
BoltClock