在Windows Phone 8 c#应用程序中不调用静态字段初始化器

本文关键字:静态 调用 字段 初始化 Phone Windows 应用程序 | 更新日期: 2023-09-27 18:18:05

我有一个静态类,它有一个初始化的静态字段:

private static SomeType _instance = new SomeType();

此代码是可移植类库的一部分,可在多个平台上使用。在桌面平台上一切正常,但在Windows Phone 8上编译时_instance为空。但是,如果将初始化移到默认静态构造函数,则_instance将被正确初始化。

我试图寻找对这种行为的解释,但没有找到任何可以解释它的东西。

。我花了一些时间尝试创建一个可重复的步骤序列来重现错误,但是在某些时候,即使切换回原始代码,错误也不再发生。我得出结论,这是一场虚惊,问题显然是由别的东西引起的。我不愿意不加解释地离开它,但到目前为止,我没有理由相信这与静态字段初始化有关。

在Windows Phone 8 c#应用程序中不调用静态字段初始化器

你需要确保没有其他东西在更新静态值,因为静态属性会随着应用域的创建而初始化。