之间有什么区别
public static void Main()
和
private static void Main()
在C#控制台应用程序中?具体来说,它与Main()
方法有关(我理解public
和private
之间的差异。)
答案 0 :(得分:62)
要充当应用程序的起点,Main
方法不一定是public
。
如果您决定将其设为public
,则可以从其他类或程序集中调用它。通常,您不需要这样做,因此您可以保留private
。
使其成为public
的一个可能用例是允许自动化测试调用它。
答案 1 :(得分:22)
两者之间的差异是public
和private
访问修饰符的唯一区别,因为两者都是有效的。这完全取决于应用程序的使用情况。
如果您想通过任何外部程序启动入口点(即用作API,用于测试目的),那么您可能需要将其公开以便可以访问。
如果您知道应用程序没有外部使用,那么最好将其设置为私有,这样外部应用程序就无法访问它。
答案 2 :(得分:11)
答案 3 :(得分:6)
除了普通的公共和私人访问修饰符功能外,什么都没有。两者都是有效的切入点。
请参阅:Why is the entry point allowed to be private?和Why is Main method private?
答案 4 :(得分:4)
当它是私有的时,main被标记为exe本身执行的入口点,所以外面的任何东西都无法访问它
将其公开将使该方法可以从外部访问
答案 5 :(得分:3)
有区别,因为第一个是公开的,第二个是私有的,所以当你尝试从课外使用第一个时,它可以正常工作,但不适用于第二个。 / p>
但是,如果您尝试在应用程序中创建其中一个入口点,则没有区别。 入口点方法可以是公共的也可以是私有的,无关紧要。
答案 6 :(得分:2)
public和private是访问说明符。
我们使用,
public static void Main()
因为要执行该程序,您需要调用存在此Main()方法的类,因为您需要将Main()方法公开,否则将无法在类外部访问。
它之所以是静态的,是因为它需要在不创建该类的任何对象的情况下进行访问。在班级。
答案 7 :(得分:2)
私有或公共语句是它的访问修饰符,私有访问修饰符使外部对象无法访问,公共访问修饰符使外部对象可以访问它。示例用法:
假设我们有一个班级:
class myClass{
public void test(){
//do something
}
}
我们创建该类的实例:
myClass mClass=new myClass();
要访问它的成员函数,你会去:
mClass.test();
如果它有一个私有访问修饰符,你会收到一个编译错误,说它无法访问。
为了知识,为了在不创建类实例的情况下访问成员,您还要将该成员设置为静态,例如:
class myClass{
public static void test(){
//do something
}
}
现在要访问它,你只需要执行:
myClass.test();
(请注意,在静态成员中访问的任何成员也应该是静态的)
答案 8 :(得分:1)
基于访问级别。
private--> access to own class
public --> open to alll
答案 9 :(得分:1)
例如,当您想要添加可以从类或程序集外部调用的入口点时,您应该设置public
,但如果它不是importatnt,请使用private
。