C# 初始化静态变量时引发奇怪的异常
我最近有一个非常奇怪的C# 初始化静态变量时引发奇怪的异常,c#,wpf,static,argumentexception,C#,Wpf,Static,Argumentexception,我最近有一个非常奇怪的系统。ArgumentException 以下代码位于我的WPF应用程序的main窗口构造函数中 CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; }); 但每次运行应用程序时,我都会得到这样的结果:System.Windows.Markup.XamlParseException'出现在PresentationFramework.dll中 很明显,有什么地方出了问题,所以我把线放在一个try/catc
系统。ArgumentException
以下代码位于我的WPF应用程序的main窗口构造函数中
CodeDefinitions.DEFAULT_AVALIABLE = (() => { return true; });
但每次运行应用程序时,我都会得到这样的结果:System.Windows.Markup.XamlParseException'出现在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."}
这并没有告诉我什么,所以我看了一下\u innerException
:
_innerException {"An item with the same key has already been added."} System.Exception {System.ArgumentException}
据我所知,使用字典时会抛出此异常,但最奇怪的是,DEFAULT\u available
是一个Func
:
内部静态函数默认值可用;
有人知道这件事吗?看起来很傻,但我就是想不出来
提前感谢!初始化静态变量会调用静态构造函数(如果以前没有调用过)
如果看不到实际的代码,就不可能判断出什么地方出了问题,但请检查您的静态构造函数和其他静态成员是否有任何可能引发此异常的内容。您是否有引用CodeDefinitions.DEFAULT\u Available
-可能会将其结果添加到字典中?实际上我没有,CodeDefinitions.DEFAULT_available
仅在未定义自定义值时用作类属性的默认值-public Func isavailable;
你说得对。有一个静态字典
正在使用重复的键初始化。谢谢!
internal static Func<bool> DEFAULT_AVALIABLE;