[英]C# how to correctly override base class property in children class?
有人可以告诉我,孩子 class 如何正确覆盖父母 class 中声明的属性? 我正在尝试覆盖“任务”属性。 在孩子 class 中,它应该返回类型为“ICheckListTask”的项目列表。部分代码:
家长 class:
internal class CBaseTaskList : IBaseTaskList
{
protected List<IBaseTask> _tasks = new List<IBaseTask>();
virtual protected List<IBaseTask> Tasks
{
get { return _tasks; }
set { _tasks = value; }
}
public virtual IBaseTask this[int index]
{
get { return Tasks[index]; }
set { Tasks[index] = value; }
}
public virtual void Add(IBaseTask newTask)
{
Tasks.Add(newTask);
}
儿童 class:
internal class CCheckListTaskList : CBaseTaskList, ICheckListTaskList
{
override protected List<ICheckListTask> Tasks
{
get { return (List<ICheckListTask>)_tasks; }
set { Tasks = value; }
}
public void WhereIsDone()
{
Tasks = new List<ICheckListTask>(Tasks.Where(x => x.IsDone == true));
}
在儿童 class 中,我收到错误,什么类型的 CCheckListTaskList.Task 必须不是“List<ICheckListTask>”,而是“List<IBaseTask>”。 如何正确地做我想做的事?
我认为你应该使用“新”而不是“覆盖”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.