7

私のニックネームからわかるように、私はシングルトン パターンについて実際に学んでいる初心者ですが、ここで 1 つの問題が発生しました。静的コンストラクターは常に標準コンストラクターの前に実行されることを知る前に、以下のコードでは結果が異なります。最初に「Insta」文字列が表示され、次に「Static」が表示されるのはなぜですか?

sealed class Singleton
{
    private static readonly Singleton instance;

    private Singleton()
    {
        Console.WriteLine("Insta");
    }

    static Singleton()
    {
        instance  = new Singleton();
        Console.WriteLine("Static");
    }

    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}

class Program
{
    static void Main()
    {
        Singleton s1 = Singleton.Instance;

    }

}
4

3 に答える 3