[英]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.