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

C# 如何在所有派生类共享的根类中创建一些字典?,c#,C#,我有一个抽象类和从中继承的其他五个类。 我想在这个抽象类中保存Dictionary的一个实例,并为所有其他类提供从这个Dictionary添加/删除值的能力 我不想把这本字典定义为“静态的” 我该怎么做?将其定义为 受保护的字典d 它将对所有子类可见 static关键字是错误的选择,因为它定义了一个共享给类的所有实例的字典。这是一件完全不同的事情实现这一点的更好方法可能是使用一个单独的单例类保存字典,并将该单例类作为基类的属性。这将使您避免使用static,同时确保封装字典的singleton类

我有一个抽象类和从中继承的其他五个类。
我想在这个抽象类中保存Dictionary的一个实例,并为所有其他类提供从这个Dictionary添加/删除值的能力

我不想把这本字典定义为“静态的”

我该怎么做?

将其定义为

受保护的字典d

它将对所有子类可见


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

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

要清楚,您希望在继承自抽象类的类的所有实例之间共享此字典,或者你只是想要一个对子类可见的字典?
静态
有什么问题吗?但这不会有共享内存-所有继承都有一个实例,所以你想要静态(在VB中共享)行为,但不想将其声明为静态?为什么?如果你想要它是静态的,就把它定义为静态的。。。。或者作为受保护的静态对象创建一个引用它的受保护属性(如果这有意义的话!!!),因为当我有一个以上的对象实例时,我将使用相同的共享内存,即使我使用“new”=>定义第二个对象,所以两个不同的对象将有一个字典