我最近有一个很奇怪的System.ArgumentException
.
以下代码位于我的 MainWindow
我的 WPF 应用程序上的构造函数
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
但每次运行应用程序时,我都会得到:System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
很明显哪里出了问题,所以我将这一行放在 try/catch block 中,如下所示:
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;
有人知道吗?这看起来很愚蠢,但我就是想不通。
提前致谢!
最佳答案
初始化一个静态变量会调用静态构造函数(如果之前没有调用过的话)。
如果没有看到实际的代码,就不可能知道哪里出了问题,但请检查您的静态构造函数和其他静态成员,看是否有任何可能引发此异常的情况。
关于c# - 初始化静态变量时抛出奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083790/