因为程序在启动时寻找main()函数,又因为一个启动项目中只能在一个类中有这个main()函数,所以只能是静态的,所以要用static来控制

解决方案 »

  1.   

    非静态成员又称实例成员,必须作用于实例。在程序刚开始运行的时候,未建立任何实例,因此无法调用实例成员,包括非静态的Main方法。为了能够在程序的开始执行Main方法,必须将其声明为静态。
    顺便说明,在Main方法中调用的成员也必须是静态的,除非建立过相应的实例。
    例如:
    namespace lover_P.Test {
      public class Test {
        public void InstanceMethod() {}  // 实例成员(非静态)
        public static void StaticMethod {}  // 类型成员(静态)
        public static void Main() {
          InstanceMethod();  // 错误!调用了实例成员,而此时并没有建立实例
          StaticMethod();    // 正确!可以调用静态成员
          Test SomeTest = new Test();  // 建立本类型的一个实例
          SomeTest.InstanceMethod();   // 再在这个实例上调用实例成员就对了
          SomeTest.StaticMethod();  // 附加一句,在实例上调用静态成员也是错误的!
        }
      }
    }
      

  2.   

    main() 是程序的主入口
    static就是为了程序调用的时候可以先不实现化对象就可以运行程序
    谁叫C#自己称是“真正的面向对象”的编程语言呢。