在C#控制台应用程序中,public static void Main()和private static void Main()之间有什么区别?

有什么区别

public static void Main() 

 private static void Main() 

在C#控制台应用程序? 具体而言,因为它涉及到Main()方法(我理解publicprivate之间的区别)。

要作为应用程序的起点, Main方法不需要public

如果你决定把它public ,就有可能从其他类别或集会中调用它。 通常你不需要这样做,所以你可以保持private

一个public可能的用例是允许自动化testing来调用它。

两者之间的区别是publicprivate访问修饰符的唯一区别,因为两者都是有效的。完全取决于使用哪一个应用程序。

如果您想通过任何外部程序启动入口点(即用作API,用于testing目的),那么您可能需要将其公开,以便可访问。

上市

如果您知道应用程序没有外部使用,那么最好将其设置为专用,以免外部应用程序可以访问它。

私人的

对于大多数目的而言,这并没有什么不同 微软主张让Main私人。

这样做的唯一真正的价值(据我所知)是它将阻止Main方法被另一个应用程序的代码库直接调用。

这里有一个很好的讨论

除了正常的公共和私人访问修饰符function,什么都没有。 两者都是有效的入口点。

请参阅: 为什么允许进入点是私人的? 为什么Main方法是私有的?

当它是私有的时候,main被标记为执行的入口点,所以外面的任何东西都不能访问它

公开将使得方法可以从外部访问

请阅读以获取更多说明http://social.msdn.microsoft.com/Forums/vstudio/zh-CN/9184c55b-4629-4fbf-ad77-2e96eadc4d62/why-is-main-in-c-not-a-public- static-?论坛= csharpgeneral

有一个区别,因为第一个是公开的,第二个是私人的,所以当你试图从课外使用第一个时,它会工作得很好,但不会和第二个一起工作。

但是,如果您正在尝试将其中一个入口点作为应用程序,则没有任何区别。 入口点方法可以是公共的也可以是私有的,没关系。

公共和私有是访问说明符。

我们用,

  public static void Main() 

因为要执行该程序,需要调用此Main()方法所在的类,因为这需要Main()方法公开,否则将无法在类之外访问。

它之所以是静态的,是因为它需要被访问,而不需要在类级创build该类的任何对象。

私有或公共声明是访问修饰符,私有访问修饰符使外部对象无法访问,而公共访问修饰符使外部对象可访问该外部对象。 示例用法:

假设我们有一堂课:

 class myClass{ public void test(){ //do something } } 

我们创build该类的一个实例:

 myClass mClass=new myClass(); 

要访问它的成员函数,你会去:

 mClass.test(); 

如果它有一个私人访问修饰符,你会得到一个编译错误,说它是无法访问的。

只是为了知识,为了访问一个成员而不创build一个类的实例,你也可以使这个成员是静态的,例如:

 class myClass{ public static void test(){ //do something } } 

所以现在就访问它,你只需要做:

 myClass.test(); 

(请注意,在静态成员中访问的任何成员也应该是静态的)

根据访问级别。

 private--> access to own class public --> open to alll 

例如,当你想添加可以从类或程序集外部调用的入口点时,你应该设置public但是如果不是importatnt,则使用private