在 .NET 6 中 C# 控制台应用模板生成的顶级语句变化
每一个 C# 程序必须带有一个 Main() 方法(函数),Main() 函数是一个程序的起始点。
我们在使用 .NET 6 建立新的 C# 控制台应用模板在 .cs 文件中生成的代码(代码如下),其中并不含有 Main() 函数,但依旧可以运行。
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
对于 .NET 5 以及更早版本的 .NET,控制台应用模板生成的代码如下:
using System;
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
这两种形式代表同一个程序。 两者都适用于 C# 10.0。 使用较新版本时,只需编写 Main 方法的主体。 编译器将 Program 类和 Main 方法合成,并将所有顶级语句放置在该 Main 方法中。 不需要包含其他程序元素,编译器会为你生成这些元素。
如果使用的是 .NET 6 版本,但是又想用旧的控制台应用模板,只需要在新建项目的时候,选中不使用顶级语句。
参考文档:C# 控制台应用模板生成顶级语句