如果我在C#中的Main方法是私有的,为什么我的程序会工作?

时间:2011-04-29 06:59:03

标签: c# clr

默认情况下,类中每个成员的类型修饰符都是私有的,即使Main()函数类型修饰符是私有的。 CLR如何调用外部世界不可见的主要方法?

4 个答案:

答案 0 :(得分:7)

CLR并不关心main的可访问性。 “对外界可见”仅适用于代码,而不适用于运行时

答案 1 :(得分:3)

<击> 那不是真的。

必须公开。对于例如public static void Main()

编辑:这是我发现的&amp; 学习今天,为什么Main不必是publichttp://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/

答案 2 :(得分:3)

尝试在代码中使用 ildasm 并留意主要方法

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint // this is something the CLR is interested in

答案 3 :(得分:1)

你是对的,

它被标记为入口点。请检查此问题:Why is Main method private?