【问题标题】:Assign static variable inside Class在类中分配静态变量
【发布时间】:2014-01-06 14:51:11
【问题描述】:

我正在尝试在类中创建一个静态变量,如下所示,

public class ClassEnLanguage
{
  public static Dictionary<string, string> dictionary = new Dictionary<string, string>();
}

这没问题,即使我可以从其他类访问它也可以正常工作,现在我想在不使用任何方法的情况下将值添加到字典对象中。喜欢,

public class ClassEnLanguage
{
 public static Dictionary<string, string> dictionary = new Dictionary<string, string>();
    dictionary.Add("somekey1","someValue1");
    dictionary.Add("somekey2","someValue2");
}

就像在 Java 中我们可以那样做,

public class ClassLanguageEn {
     public static HashMap labels = new HashMap();
        static {        
            labels.put("somekey1","someValue1");
            labels.put("somekey2","someValue2");
               }
}

我们可以使用ClassLanguageEn.labels (Classname.VariableName)访问这个变量。

现在我的问题是有可能吗。

【问题讨论】:

    标签: c# asp.net collections asp.net-3.5


    【解决方案1】:

    你可以使用类型初始化器,或者static constructor,像这样:

    public class ClassEnLanguage
    {
        public static Dictionary<string, string> dictionary = new Dictionary<string, string>();
        static ClassEnLanguage()
        {
            dictionary.Add("somekey1","someValue1");
            dictionary.Add("somekey2","someValue2");
        }
    }
    

    请注意,您也可以像这样使用字典初始化器:

    public class ClassEnLanguage
    {
        public static Dictionary<string, string> dictionary = new Dictionary<string, string>
            {
                { "somekey1", "someValue1" },
                { "somekey2", "someValue2" }
            };
    }
    

    【讨论】:

    • 感谢您的紧急回复@p.s.w.g 非常感谢您的快速回复。
    • 是的,集合初始化器在这里看起来很自然(第二个例子)。
    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多