这是C#相关的,但实际上这个问题是非常通用的。如何强制派生类填充基类中定义的列表?
比方说,我有一个基类
abstract class Base {
protected List<string> MyList = new List<string>();
protected abstract void FillMyList();
}
class Derived : Base {
protected void FillMyList() {
MyList.Add("test");
MyList.Add("test2");
}
}
这是确定的,派生类填补了基类中定义的MYLIST。
但是,除了抽象方法名称(FillMyList) - 提示您实际上需要填充MyList - 这种方法应该表示什么不知道。
有没有更好的方式强制执行或(更好地)建议您在从Base继承时必须填写MyList? 也许具有FillMyList声明:
protected abstract void FillMyList(List<string> listToFill);
你有什么建议?
抽象方法和属性都给出了相同的效果,即“必须实现它” – TalentTuner 2010-11-22 09:37:41
嗨Nagg,这是诀窍。谢谢。 @saurabh:true,但这会强制Derived执行某些操作并实际返回列表(即使为空)。 – sh0uzama 2010-11-22 10:13:14