如何在根类中创建一些将由所有派生类共享的字典?

时间:2013-02-28 14:48:14

标签: c#

我有一个抽象类和其他五个继承它的类 我想在这个抽象类中保存一个Dictionary实例 - 并让所有其他类能够在这个Dictionary中添加/删除值。

我更喜欢不将此词典定义为“静态”。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

将其定义为

  

受保护的词典d ...

它将对所有子类可见。

static关键字是错误的选择,因为它定义了与该类的所有实例共享的字典。这是完全不同的事情

答案 1 :(得分:1)

更好的方法是使用一个单独的Singleton类来保存您的字典,并使该单例类成为基类的属性。这样可以避免使用static,同时确保封装字典的单例类的一个实例。使其成为抽象类的受保护成员,允许访问包含字典的类的单个实例的所有子类。