当我尝试引用另一个类中的静态变量时,我刚刚收到一个异常,该类也是静态初始化的。这以前有效,但由于某种原因它现在失败了。我所做的唯一更改是将 Visual Studio (2010) 重置为其默认设置,我无法想象这是造成这种情况的原因。我添加的任何其他代码也没有触及任何受影响的部分。
这是我的代码
WinForms 类'MainForm':
partial class MainForm : Form
{
// ...
private RefClass convMan;
private Dictionary<EnumType, string> LogNames = RefClass.LogNames;
// ...
public MainForm() { .... }
}
引用类“RefClass”:
class RefClass
{
// ...
public enum EnumType { TypeOne = 0, TypeTwo = 1, TypeThree = 2 };
public static Dictionary<EnumType, string> LogNames = new Dictionary<EnumType, string>()
{
{ EnumType.TypeOne, "Text0" },
{ EnumType.TypeTwo, "Text1" },
{ EnumTypy.TypeThree, "Text2" }
};
}
我现在得到的错误是(从德语翻译):
An unhandled exception of type "System.TypeInitializationException" occurred.
Additional information: The type initializer for "RefClass" threw an exception.
有 InnerException
System.ArgumentException
所以,就我而言,我的静态字典一旦被访问就应该被初始化,因此当我的 Form 类引用它时。我尝试调试以查看静态字典是否在 Form 类中被引用之前被初始化,但事实并非如此。此外,当我在参考线的断点处停止时,变量 LogNames 为空。
我真的很困惑为什么会发生这种情况,以前都有效。