初始化静态变量时抛出奇怪的异常
作者:互联网
我最近有一个很奇怪的System.ArgumentException.
以下代码在我的WPF应用程序的MainWindow构造函数中
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
但是每次运行该应用程序,这就是我得到的:PresentationFramework.dll中发生了System.Windows.Markup.XamlParseException’
很明显,哪里出了问题,所以我将行放在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}
据我所知,使用Dictionary时会抛出此exception,但最奇怪的是DEFAULT_AVALIABLE是Func< bool> ;:
internal static Func<bool> DEFAULT_AVALIABLE;
有谁知道这件事吗?似乎很蠢,但我无法弄清楚.
提前致谢!
解决方法:
初始化静态变量会调用静态构造函数(如果之前尚未调用过).
如果没有看到实际的代码,就不可能说出问题出在哪里,但是要检查您的静态构造函数和其他静态成员是否可能引发此异常.
标签:static,argumentexception,wpf,c 来源: https://codeday.me/bug/20191027/1942786.html