其他分享
首页 > 其他分享> > 初始化静态变量时抛出奇怪的异常

初始化静态变量时抛出奇怪的异常

作者:互联网

我最近有一个很奇怪的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&gt ;:

internal static Func<bool> DEFAULT_AVALIABLE;

有谁知道这件事吗?似乎很蠢,但我无法弄清楚.

提前致谢!

解决方法:

初始化静态变量会调用静态构造函数(如果之前尚未调用过).

如果没有看到实际的代码,就不可能说出问题出在哪里,但是要检查您的静态构造函数和其他静态成员是否可能引发此异常.

标签:static,argumentexception,wpf,c
来源: https://codeday.me/bug/20191027/1942786.html