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

标签 c# wpf static argumentexception

我最近有一个很奇怪的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_AVALIABLEFunc<bool> :

internal static Func<bool> DEFAULT_AVALIABLE;

有人知道吗?这看起来很愚蠢,但我就是想不通。

提前致谢!

最佳答案

初始化一个静态变量会调用静态构造函数(如果之前没有调用过的话)。

如果没有看到实际的代码,就不可能知道哪里出了问题,但请检查您的静态构造函数和其他静态成员,看是否有任何可能引发此异常的情况。

关于c# - 初始化静态变量时抛出奇怪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083790/

相关文章:

WPF GridViewHeader 样式问题

java - Android 中的 "Cannot make a static reference to a non-static method"

c++ - 您是否将模块特定的功能声明为静态的?

c++ - gcc 插件 c c++ 查找全局非静态变量

c# - ASP.Net Core WebApi 中的非属性路由

c# - SqlCommand.ExecuteReader 是否会自动打开数据库连接?

wpf - 如何在wpf中的组标题中显示属性名称

c# - 如何在一定时间内延长对角线渲染器线

c# - dotnet core IdentityModel 不会自省(introspection) token

c# - Canvas 覆盖了里面 TextBlock 的 TextAlignment 值