C# 中的 static void Main 不应该是 public 的吗?

4
我正在阅读微软C#指南,感到非常困惑。

http://msdn.microsoft.com/en-us/library/acy3edy3(v=vs.100).aspx

在这个页面上,声明说Main不应该是public?
Main被声明在一个类或结构体中。Main必须是静态的,并且不应该是public。(在前面的例子中,它接收默认的private访问权限。)封装Main的类或结构体不需要是静态的。
我感到非常困惑,因为我可以通过public static void Main编译和运行。根据我对C++和Java的理解,Main可以是public的。MSDN文章是否有错别字?

2
"should" 只是一个指导方针。这里有一些原因:https://dev59.com/83A75IYBdhLWcg3wxsJn - Dirk Vollmar
很奇怪,这是他们的指南,但他们的IDE默认忽略它。 - Rawling
@0xA3 是正确的。用户不应该调用Main函数,因此最好将其封装或“隐藏”起来。 - user925777
1个回答

2

我感到很困惑,因为我可以编译和运行

这是一份指南而不是规则,所以编译器与此无关。


我同意这只是一个指南,它只是为了防止用户稍后调用Main函数吗? - AlexH
@AlexH,是的,将其公开将使该方法在程序集外可访问。 - Habib
5
@AlexH,这是一篇关于此问题的好讨论。http://social.msdn.microsoft.com/Forums/en-CA/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62 - Habib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接