2011-11-05 50 views
0

我真的想这样做......为什么不能声明一个也继承的通用基类?

public class BaseController<T> where T : IPageModel, Controller 

但视觉工作室犯规喜欢它。控制器是MVC中的一个类。我的页面模型可以确保获得某些模型的东西。我的语法错了吗?

+0

什么是应该继承/实现呢? 'BaseController '到'Controller'和'T'到'IPageModel'? – BoltClock

回答

8

正确的语法是:下面的where关键字

public class BaseController<T>: Controller where T : IPageModel 

一切都被认为是通用的约束声明。在你的情况下,你想让你的类从Controller派生,所以你首先指出这一点,并在最后指定通用约束。

现在你的实际控制人也从这个基本控制器得出:

public class FooController: BaseController<Foo> 
{ 
    ... 
} 

这里显然Foo必须实现IPageModel这是由通用约束强制执行:

public class Foo: IPageModel 
{ 
    ... 
} 
+0

非常感谢! – Exitos

相关问题