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. クラスBにはmain関数があるため、最初にクラスBを初期化します。
  2. Y = A.x + 1; Axが参照され、コンパイラがクラスAを初期化します
  3. クラスAのメンバー変数x、->コンストラクターA()、Bはこの時点では初期化されていないため、Byは0であるため、Ax = 1です。
  4. ClassBに戻り、メンバー変数Yの初期化を続行します。値は2です。

の結果
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/hhhhhhenrik/article/details/98376039