0

これに関連する非常に多くの複雑な質問を見た後、静的フィールドの初期化を行う次のコードについて説明を求めたいと思います。もう 1 つ知りたいことは、静的フィールドの初期化の要件です。どのシナリオで役立つでしょうか??

using System;

class Test
{
    static void Main()
    {
        Console.WriteLine("{0} {1}", B.Y, A.X);
    }

    public static int F(string s)
    {
        Console.WriteLine(s);
        return 1;
    }
}

class A
{
    static A()
    { }

    public static int X = Test.F("Init A");
}

class B
{
    static B()
    { }

    public static int Y = Test.F("Init B");
}

出力:

初期B

初期化A

1 1

静的コンストラクターが存在しない場合、出力は異なる場合があります。その背後にある理論的根拠を理解できません.静的フィールドの初期化がこのフラグメントにもたらした違いは何ですか?. 誰か助けてください。私はc#の初心者です。

4

1 に答える 1