如果我在C#中的Main方法是私有的,为什么我的程序会工作?
默认情况下,类中每个成员的类型修饰符都是私有的,即使Main()函数类型修饰符是私有的。 CLR如何调用外部世界不可见的主要方法?
这不是真的。
它必须是公开的。 例如public static void Main()
。
编辑:这是我今天发现和学到的 ,为什么Main
不需要public
。 http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/
CLR不关心main
的可访问性。 “对外界可见”仅适用于代码 ,而不适用于运行时 。
尝试在代码上使用ildasm并查找main方法
.method private hidebysig static void Main(string[] args) cil managed { .entrypoint // this is something the CLR is interested in
你是对的,
它被标记为入口点。 检查这个问题: 为什么Main方法是私有的?