为什么程序主方法是静态的?

Why is a program main method static?

我一直认为(假设)Main 方法是静态的,因为您不能拥有它的多个实例(如果错了请纠正我)。 Main 方法是程序的起点,因此您只能有一个。

所以如果我有

class Program
{

   static void Main(String[] args)
   { // something
   }

}

class OtherClass
{

   void Test()
   { 
      Program p1 = new Program();
      Program p2 = new Program();
      Program p3 = new Program();
      Program p4 = new Program();

   }

}

Program 的所有实例将共享相同的 Main 方法,因此始终有一个起点。

我说的对吗?因为我只是出于好奇用谷歌搜索了这个,并在互联网上找到了不同的答案。

这个解释对于静态的主要方法是否也正确?

如果入口点方法不是static,则需要有人先创建一个对象。那么问题是:创建一个 class?

的对象

I always thought (assumed) that the Main method was static because you cannot have multiple instances of it

你不能有方法的实例。方法位于 DLL 的 Code 部分,不会复制到堆中。同一方法中只能有多个线程运行。

The Main method is the start point of your program and thus you can have only one.

和以前一样:如果我们考虑签名,只有一种方法,无论是否是静态的,都是独立的,因为它们没有被实例化。

all instances of Program will share the same Main method ...

取决于您对 "share" 这个词的理解。所有对象都会有方法,是的。

... and so there will always be one start point.

背后的推理是错误的。您有很多 Program 的实例,但这与方法的数量无关。