C# - 在本地添加静态字典值

时间:2013-07-19 10:55:41

标签: c# arrays dictionary

我收到了这段代码

static Dictionary<string, XElement> DName = new Dictionary<string, string> { };
static void Main(string[] args)
    {
     DName.Add("RO","FL");
    }
static void anotherMethod(){
Console.WriteLine(DName["RO"]);
//not working, while in Main works.
}       

那么如何从其他方法访问它?

1 个答案:

答案 0 :(得分:1)

字典DName在类的所有静态和非静态方法之间共享。该词典中键的存在与否仅取决于它们的插入时间:如果调用

DName.Add("RO","FL");

是在调用anotherMethod()之前制作的,然后DName["RO"]应该看到该值;如果之后发出Add的电话,或者在调用anotherMethod()之前删除了该键,则"RO"的查找将失败。

请注意,通过静态成员变量传递数据是一种非常脆弱的方法。明确传递参数要好得多 - 它可以让你更好地控制传递的内容:

static void AnotherMethod(IDictionary<string,string>){
    Console.WriteLine(dName["RO"]);
}