为什么程序不以 Main 方法开头

本文关键字:方法 开头 Main 程序 为什么 | 更新日期: 2023-09-27 18:32:28

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

有人可以帮忙吗?

为什么程序不以 Main 方法开头

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

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