如果我的 C# 中的 Main 方法是私有的,为什么我的程序还能运行?

发布于 2024-11-04 04:59:49 字数 75 浏览 2 评论 0原文

默认情况下,类中每个成员的类型修饰符都是私有的,甚至 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦忆晨望 2024-11-11 04:59:49

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.

乙白 2024-11-11 04:59:49

<罢工>
那不是真的。

它必须是公开的。例如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 be public.
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/

献世佛 2024-11-11 04:59:49

尝试在代码中使用 ildasm 并查找 main 方法

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

Try using ildasm on your code and lookout for the main method

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint // this is something the CLR is interested in
素衣风尘叹 2024-11-11 04:59:49

你是对的,

它被标记为入口点。检查这个问题:为什么 Main 方法是私有的?

You're right,

it's marked as an entrypoint. Check this question: Why is Main method private?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文