簡體   English   中英

C# 如何正確覆蓋子 class 中的基數 class 屬性?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM