我一直认为(假设)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();
}
}
程序的所有实例都将共享相同的Main
方法,因此总会有一个起点。
我说错了吗?因为我只是出于好奇而搜索了这一点,并在互联网上找到了不同的答案。
这个解释是否正确,主要方法是静态的?
答案 0 :(得分:1)
如果入口点方法不是static
,则有人需要先创建一个对象。那么问题是:创建一个哪个类的对象?
我一直认为(假设)Main方法是静态的,因为你不能有多个实例
您不能拥有方法实例。方法驻留在DLL的Code
部分,不会复制到堆中。您只能在同一方法中运行多个线程。
Main方法是程序的起点,因此您只能拥有一个。
和以前一样:如果我们考虑签名,只有一个方法,如果它是静态的,则是独立的,因为它们没有被实例化。
程序的所有实例将共享相同的Main方法...
取决于您对术语“分享”的理解。所有对象都有方法,是的。
......所以总会有一个起点。
背后的原因是错误的。您有许多Program
的实例,但这与方法的数量无关。