当我们在 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>$
?我只是好奇。
如果您使用顶级语句,那么编译器将为您生成一个 main.txt 文件。因此,如果您尝试命名一个方法 Main,编译器会感到困惑。