我很好奇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;
}
Run Code Online (Sandbox Code Playgroud)
在测试(Mono 2.x)中,它们似乎按照它们在代码中出现的顺序进行初始化.例如.由于是,DEFAULT将有值"喜",但如果我移动定义为DEFAULT上述A和B,它会被分配NULL,因为一个尚未分配.
是否保证变量按顺序初始化?还是由编译器决定?
谢谢.