大家一起来探讨一下静态构造器和静态字段调用的先后顺序吧

it2022-05-05  158

今天在MSDN中看文章的时候,看到静态构造函数这一段,发现自己有点不懂,想了好半天还没弄明白,现在把它贴出来,看看谁能够帮助我,呵呵,我先把代码贴出来, using System; class A {    public static int X;    static A() {       X = B.Y + 1;    } } class B {    public static int Y = A.X + 1;    static B() {}    static void Main() {       Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);    } } 产生输出 X = 1, Y = 2 对于这个输出我有点疑问,在这段代码编译运行的时候,首先,由于class B里面带有Main,所以肯定是要先运行static B(),但是在class B()中又有静态的字段,所以会先执行Y = A.X + 1这行代码,到了这里的时候,由于A.X这句,所以在class A中,程序会先执行静态构造器,静态构造器中的代码X = B.Y + 1,这个时候该怎么往下执行了?请教一下

转载于:https://www.cnblogs.com/zndavid/archive/2006/06/05/417891.html


最新回复(0)