【发布时间】:2014-10-03 12:51:58
【问题描述】:
我很好奇 C# 规范中关于在 C# 5 (.net4) 中初始化静态字段的顺序的任何内容。例如:
public class Test
{
public static readonly string A = "hi";
public static readonly string B = "bye";
public static readonly string DEFAULT = A;
}
在测试(Mono 2.x)中,它们似乎按照它们在代码中出现的顺序进行了初始化。例如。照原样,DEFAULT 将具有值“hi”,但如果我将 DEFAULT 的定义移到 A 和 B 上方,它将被分配 NULL,因为尚未分配 A。
是否保证变量按顺序初始化?还是取决于编译器?
谢谢。
【问题讨论】: