在C#控制台应用程序中,public static void Main()和private static void Main()之间有什么区别?
有什么区别
public static void Main()
和
private static void Main()
在C#控制台应用程序? 具体而言,因为它涉及到Main()
方法(我理解public
和private
之间的区别)。
要作为应用程序的起点, Main
方法不需要public
。
如果你决定把它public
,就有可能从其他类别或集会中调用它。 通常你不需要这样做,所以你可以保持private
。
一个public
可能的用例是允许自动化testing来调用它。
两者之间的区别是public
和private
访问修饰符的唯一区别,因为两者都是有效的。完全取决于使用哪一个应用程序。
如果您想通过任何外部程序启动入口点(即用作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
。