【问题标题】:How to expose multi-element field in base class to derived classes如何将基类中的多元素字段暴露给派生类
【发布时间】:2011-01-26 21:31:32
【问题描述】:

我有一个声明一组对象的基类。该分组可以是数组、List、Collection,由我决定。

这个基类的派生类是实际设置这个多元素字段值的那些。将此字段公开给派生类的最佳方法是什么?

【问题讨论】:

  • 您能多谈谈这个领域吗?
  • 这个字段是一个固定长度的集合,但是元素需要对派生类是可变的。在这种情况下,我认为自然的选择是数组作为字段的类型。可能更好地解释为基类将分配,派生类将分配。

标签: c# .net-3.5 c#-3.0


【解决方案1】:

通过受保护的最小接口公开它

class Base {
    private List<string> _elems = new List<string>();
    protected ICollection<string> ElementStore { get { return _elems; } }
}

class Derived : Base {
    public Derived() {
        ElementStore.Add("Foo");
        ElementStore.Add("Bar");
    }
}

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 2016-04-20
    • 2011-04-14
    • 1970-01-01
    • 2011-08-16
    • 2019-03-21
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    相关资源
    最近更新 更多