-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方法开始执行。

结果是:

实例构造函数进入main方法3

任何人都可以帮忙吗?

4

1 回答 1

1

Foo 有一个名为 Instance 的静态变量。

这个静态变量在 Main 执行之前被初始化,这会导致构造函数 Foo() 被调用

于 2012-04-26T08:07:41.913 回答