【发布时间】:2014-10-09 07:41:48
【问题描述】:
我有一个静态类,其中包含一个已就地初始化的静态字段:
private static SomeType _instance = new SomeType();
此代码是在多个平台上使用的可移植类库的一部分。在桌面平台上一切正常,但在为 Windows Phone 8 编译时,_instance 为空。但是如果我将初始化移到默认的静态构造函数中,_instance 就会正确初始化。
我试图寻找对此行为的解释,但没有找到任何可以解释的东西。
更新。我花了一些时间尝试创建一个可重复的步骤序列来重现错误,但在某些时候即使我切换回原始代码也不再发生错误。我得出的结论是,这是一个误报,问题显然是由其他原因引起的。我觉得不解释就离开它很舒服,但到目前为止,我没有理由相信这与静态字段初始化有关。
【问题讨论】:
-
可能实际上是一个错误,您是否尝试过为它提出 Connect 票?
-
我猜它可能在某处被设置为
null。只需添加readonly关键字,看看问题是否仍然存在? -
花更多的时间在上面。没有设法创建一个可重复的场景。这很可能是一场虚惊。如果再次发生这种情况,我会更新帖子。
-
Vagif,你试过@Sriram 的建议吗?如果你添加只读,如果有任何其他代码可能会改变字段的值,你将立即得到一个编译器错误。
标签: c# c#-4.0 windows-phone-8 static-initialization