1 c# program-entry-point access-specifier
C#中Main方法的默认访问说明符是什么?
如果static void Main()的默认访问说明符是私有的,那么外部实体如何例如.OS调用这个方法?
任何外来进程都不应该调用此方法.
Eri*_*ert 13
C#中Main方法的默认访问说明符是什么?
所有方法的默认访问说明符是private.
那么OS等外部实体如何调用此方法?
它没有.主要方法由CLR调用.由于CLR是强制隐私语义的东西,它可以忽略它.
但这实际上并不是正确的答案.正确的答案是说你的问题表明你对"私人"的适用有一个共同但不正确的想法. "私有"并不意味着"不能从外部实体调用此方法".
相反,访问修饰符适用于事物的名称.也就是说,访问修饰符确定事物名称的可访问性域:它确定名称可能意味着有问题的代码区域.该private修改意味着"这个实体的访问域是在声明它的类型的整个身体".任何在该可访问域之外查找该名称的尝试都不会导致选择该实体的名称解析.名称解析将选择其他内容,否则名称解析将失败.
绝对可以通过其他机制调用私有方法.你可以委托它并传递它.如果您足够信任,可以使用私人反射.等等.主方法的调用就是这样一种机制; 它首先没有Main按名称查找!