添加三个静态字段

kok*_*abi 2 c# static field

在下面的代码中,如果我们使用常量字段,结果就可以了!但是当我们使用静态字段时,结果是不可预期的.

为什么和如何?

class Program
{
    private static int x = y + 100;
    private static int y = z - 10;
    private static int z = 300;

    public static void Main(string[] args)
    {
        System.Console.WriteLine("{0}/{1}/{2}",x,y,z); // 100/-10/300  why and how?
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*sie 8

成员变量按它们在文件中出现的顺序初始化.在初始化x时,y和z都为0.

  • @ programmer1,常量被编译代码中的值替换,所以顺序无关紧要 (2认同)