c#静态类的一段代码

        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);
            }
        }

执行过程:

  1. 因为classB中有main函数,所以先初始化class B,
  2. Y=A.x+1;引用了A.x,编译器去初始化Class A
  3. class A 的成员变量x,——>构造函数A(),此时B未初始化完成,所以B.y为0,所以A.x=1;
  4. 返回ClassB,继续初始化成员变量Y,值为2.

执行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hhhhhhenrik/article/details/98376039