初始化静态变量时抛出奇怪的异常
Weird exception being thrown when initializing static variable
我最近有一个很奇怪的事情System.ArgumentException
。
以下代码在我的 WPF 应用程序 MainWindow
构造函数中
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
但每次 运行 应用程序,我得到的是:System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
很明显哪里出了问题,所以我把这行放在 try/catch 块中,像这样:
try
{
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
}
catch()
{
}
并在 catch 的 '{' 处设置断点,这就是我得到的 $exception:
[System.TypeInitializationException] {"The type initializer for 'ComunicadorSerial.Classes.Utils.CodeDefinitions' threw an exception."}
这并没有告诉我什么,所以我看了一下 _innerException
:
_innerException {"An item with the same key has already been added."} System.Exception {System.ArgumentException}
据我所知,这个异常是在使用字典时抛出的,但最奇怪的是 DEFAULT_AVALIABLE
是一个 Func<bool>
:
internal static Func<bool> DEFAULT_AVALIABLE;
有人知道这件事吗?看起来很蠢,但我就是想不通。
提前致谢!
初始化静态变量会调用静态构造函数(如果之前没有调用过的话)。
如果没有看到实际的代码,就不可能知道哪里出了问题,但请检查您的静态构造函数和其他静态成员是否有任何可能引发此异常的情况。
我最近有一个很奇怪的事情System.ArgumentException
。
以下代码在我的 WPF 应用程序 MainWindow
构造函数中
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
但每次 运行 应用程序,我得到的是:System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
很明显哪里出了问题,所以我把这行放在 try/catch 块中,像这样:
try
{
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
}
catch()
{
}
并在 catch 的 '{' 处设置断点,这就是我得到的 $exception:
[System.TypeInitializationException] {"The type initializer for 'ComunicadorSerial.Classes.Utils.CodeDefinitions' threw an exception."}
这并没有告诉我什么,所以我看了一下 _innerException
:
_innerException {"An item with the same key has already been added."} System.Exception {System.ArgumentException}
据我所知,这个异常是在使用字典时抛出的,但最奇怪的是 DEFAULT_AVALIABLE
是一个 Func<bool>
:
internal static Func<bool> DEFAULT_AVALIABLE;
有人知道这件事吗?看起来很蠢,但我就是想不通。
提前致谢!
初始化静态变量会调用静态构造函数(如果之前没有调用过的话)。
如果没有看到实际的代码,就不可能知道哪里出了问题,但请检查您的静态构造函数和其他静态成员是否有任何可能引发此异常的情况。