我有一个基类看起来像这样:困惑在C#中继承
public class BaseController : Controller {
}
类继承这样的:
public class ABC : BaseController {
public void Create(string a, string b) {
var Meta = new Meta();
Meta.Title = "test";
}
}
public class DEF : BaseController {
public void Create(string a, string b, string c) {
var Meta = new Meta();
Meta.Title = "job";
}
}
每次,继承BaseController需要创建一个实例的类之一Meta();
是否有某种方法可以将此创建从类ABC & DEF移动到基本控制器中?请注意,类ABC,DEF等中的一些方法具有不同数量的参数。
我有一个想法了,这是做在BaseController如下:
public Meta Meta { get; set; }
protected override void Initialize(RequestContext requestContext)
{
if (Meta == null) { Meta = new Meta(); }
}
这是做有效的事。另外,如果我在BaseController中执行此操作,那么字段Meta是否可用于从BaseController继承的类中?
这是一个很好的答案,但var a会与BaseController的Create方法中的参数发生冲突。 –
我没有修改那里的代码,只是合并了这个代码行,就像它存在的地方。这就是为什么我没有添加受保护的变量等。 –
我刚更改了原文,将其重命名为其他内容并添加了标题的设置。你能看看吗?添加保护措施是否明智以及如何提供帮助? –