如果我的 C# 中的 Main 方法是私有的,为什么我的程序还能运行?
默认情况下,类中每个成员的类型修饰符都是私有的,甚至 Main() 函数类型修饰符也是私有的。 CLR如何调用外界不可见的main方法?
By default the type modifier for every member in a class is a private, even the Main() function type modifier is private. How does the CLR call the main method which is not visible to the outside world?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
CLR 不关心
main
的可访问性。 “对外界可见”仅适用于代码,而不是运行时。The CLR does not care about the accessibility of
main
. "Visible to the outside world" only applies to the code, not the runtime.<罢工>
那不是真的。
它必须是公开的。例如public static void Main()
。编辑
:这是我发现的&今天了解了为什么
Main
不需要public
。http://social. msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/
Thats not true.
It has to be public. For e.g.
public static void Main()
.EDIT: Here is what I found & learned today, on why
Main
need not bepublic
.http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/
尝试在代码中使用 ildasm 并查找 main 方法
Try using ildasm on your code and lookout for the main method
你是对的,
它被标记为入口点。检查这个问题:为什么 Main 方法是私有的?
You're right,
it's marked as an entrypoint. Check this question: Why is Main method private?