新的控制台项目模板创建了一个如下所示的Main方法:
class Program
{
static void Main(string[] args)
{
}
}
为什么Main
方法和Program
类都不需要是公共的?
一个程序的入口点通过.entrypoint
IL指令进行标记。无论方法或类是否为公共,都只有这个指令才是重要的。
Main
方法不应该被任何人调用。
它实际上被标记为EXE的执行入口点,因此默认情况下没有外部调用者。
如果你想要,可以将它标记为public
以便于被调用,例如当你将控制台应用转换成API时。
Main
通常也是一个不好的想法。更好的设计是公开一个外部程序可以调用的公共门面(Facade)。Main
处理命令行参数,然后调用同一门面。 - Anders Abel是的。您可以将main()
方法标记为public、private或protected。如果您希望通过任何外部程序启动入口点,则可能需要将其标记为public,以便访问。如果您知道应用程序没有外部使用,则最好将其标记为private,以便外部应用程序无法访问它。
public class MainMethod
{
private static void Main(string[] args)
{
Console.WriteLine("Hello World !!");
}
}
在这种情况下,公共或私有关键字并没有区别,它完全取决于应用程序的使用和范围。在不同的场景中使用以下关键字。
class Program
是内部的,Main()
是私有的。 - H H