Main() 方法的 C# 默认访问修饰符

标签 c#

我在 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/

相关文章:

c# - WCF 服务作为 MVC 应用程序的一部分

c# - 使用 C# 中对象的值写入文件

c# - InnerException 抛出 TypeLoadException TypeLoadException : Could not load type 'System.UriTemplate' from assembly 'System. ServiceModel,

c# - 在不同的远程机器上使用 StateServer 模式时出现问题

c# - select语句包含保留字c#

c# - 我如何在 C# 中产生并捕获必要的异常?

c# - 使用 HTML Agility Pack 提取动态内容

c# - 使用异步方法在 Teamcity 上运行 xUnit 测试

C#/SQL 检查重复条目

c# - 等待异步 WCF 方法