-4
class Program
    {
        static void Main()
        {           
            Console.WriteLine("enter main method");
            Console.WriteLine(Foo.X);
            Console.ReadKey();
        }
    }
    class Foo
    {
        public static Foo Instance = new Foo();
        public static int X = 3;
        //static Foo()
        //{
        //    Console.WriteLine("static constructor");
        //    Console.WriteLine(X);
        //}
        Foo()
        {
            Console.WriteLine("instance constructor");
        }
    }

なぜプログラムは Foo のコードで始まるのか、その後、main メソッドが実行を開始します。

結果は次のとおりです。

インスタンスコンストラクターはメインメソッドに入ります 3

誰でも助けることができますか?

4

1 に答える 1

1

Foo には、Instance という静的変数があります。

この静的変数は Main が実行される前に初期化されるため、コンストラクター Foo() が呼び出されます。

于 2012-04-26T08:07:41.913 に答える