我想知道是否有一个缺点,通过静态构造函数而不是公共构造函数初始化数据。我认为前两个代码狙击手也是这样做的。静态或公共构造函数的数据初始化
下面
class Test
{
private readonly static Dictionary<string, string> languages =
new Dictionary<string,string>()
{
{"de-CH", "Language.German".Translate()},
{"fr-CH", "Language.French".Translate()},
{"it-CH", "Language.Italian".Translate()}
};
}
或
class Test
{
private readonly static Dictionary<string, string> languages =
new Dictionary<string,string>();
static LanguageChangeFragment()
{
languages.Add("de-CH", "Language.German".Translate());
languages.Add("fr-CH", "Language.French".Translate());
languages.Add("it-CH", "Language.Italian".Translate());
}
}
或使用公共构造一个简单的例子
class Test
{
private readonly Dictionary<string, string> languages =
new Dictionary<string,string>();
public LanguageChangeFragment()
{
languages.Add("de-CH", "Language.German".Translate());
languages.Add("fr-CH", "Language.French".Translate());
languages.Add("it-CH", "Language.Italian".Translate());
}
}
编辑:
改变除去最后剪断静电,从而使创建新测试时刻时不会引发异常
是不是您的类名'LanguageChangeFragment'而不是'Test'? – Habib