为什么顶级语句中的入口点名称是“<Main>$”而不是“Main”?

问题描述 投票:0回答:1

当我们在 C# 9(及更高版本)中使用顶级语句时,我们可以省略

static void Main(string[] args)
internal class Program
,我们的程序不会从
Main
方法开始;而是,
<Main>$
。我们可以通过添加一个 throw 语句来验证这一点。

该程序只有一个 throw 语句并且使用顶级语句:

throw new Exception("foo bar");

当我们运行它时,我们会看到:

Unhandled exception. System.Exception: foo bar
   at Program.<Main>$(String[] args) in C:\Users\User\source\repos\test\test\Program.cs:line 1

看看它是如何输出的:

at Program.<Main>$

但不是:

在 Program.Main

当我们使用顶级语句时,为什么不从一个简单的 Main 方法开始,而不是

<Main>$
?我只是好奇。

c# .net program-entry-point c#-9.0
1个回答
0
投票

如果您使用顶级语句,那么编译器将为您生成一个 main.txt 文件。因此,如果您尝试命名一个方法 Main,编译器会感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.