use*_*292 5 .net c# static-variables
我对C#中静态变量声明的顺序有疑问
当我运行此代码时:
static class Program {
private static int v1 = 15;
private static int v2 = v1;
static void Main(string[] args) {
Console.WriteLine("v2 = "+v2);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
v2=15
Run Code Online (Sandbox Code Playgroud)
但是,当我更改静态变量声明顺序时,如下所示:
static class Program {
private static int v2 = v1;
private static int v1 = 15;
static void Main(string[] args) {
Console.WriteLine("v2 = "+v2);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
v2 = 0
Run Code Online (Sandbox Code Playgroud)
为什么会这样?