在类实例之间共享字典内容

时间:2012-10-24 21:21:53

标签: c# scope

假设我有一个类似

的字典结构
var stocks = new Dictionary<string, double>();
stocks.Add("APPL", 1234.56);

虽然保留了从词典中添加和删除的功能,但有没有一种方法可以在包含类的实例之间“共享”内容? (顺便说一句,我被迫从一个不能是静态的包含类继承。)

或者是否有其他方式来表示允许此类共享的数据?

1 个答案:

答案 0 :(得分:5)

具有静态成员的类不需要是静态的。我建议将字典作为受保护的静态属性。另外,对于线程安全,您需要使用ConcurrentDictionary而不是普通的Dictionary

public class MyClass
{
    protected static ConcurrentDictionary<string, double> Stocks {get; set;} 

    static MyClass()
    {
        Stocks = new ConcurrentDictionary<string, double>();
    }
}