我在 vs2010 中创建了一个示例类。
通过类 View ,我看到 Main 的默认访问修饰符是内部的。
我还看到有人说 Main 的默认访问修饰符是“隐式私有(private)”。
Visual Studio 2010 automatically defines a program’s Main() method as implicitly private. Doing so ensures other applications cannot directly invoke the entry point of another.
我知道内部和私有(private)之间存在差异。那么哪个是正确的?
最佳答案
如果你的代码是这样的:
static void Main()
那就是私有(private)方法了。 (static
部分与可访问性正交,但作为入口点是必需的。)通常,任何成员的默认可访问性是您可以声明的最私有(private)的可访问性。所以对于类或结构中的方法,这是私有(private)的。对于顶级(非嵌套)类型,它是内部的。对于在类/结构中声明的任何成员,它都是私有(private)的1。对于接口(interface)和枚举成员,它是公开的。
如果不查看您的代码或类 View 的屏幕截图,很难准确理解您通过类 View 看到的内容,但是方法的默认可访问性绝对是私有(private)的。无论是否是 Main
方法都是如此。
1 显式接口(interface)实现在这里有点奇怪,因为它既不是私有(private)的也不是公共(public)的;它根本无法通过类型访问,只能通过接口(interface)访问。
关于Main() 方法的 C# 默认访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736019/