我有一個基類看起來像這樣:困惑在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方法中的參數發生衝突。 –
我沒有修改那裏的代碼,只是合併了這個代碼行,就像它存在的地方。這就是爲什麼我沒有添加受保護的變量等。 –
我剛更改了原文,將其重命名爲其他內容並添加了標題的設置。你能看看嗎?添加保護措施是否明智以及如何提供幫助? –