Top-level statements简化了C#程序入口,无需显式定义Main方法和类;2. 编译器自动生成入口点,支持直接使用args参数;3. 适用于小型工具、教学示例和原型开发;4. 整个项目仅限一个文件使用,不得包含命名空间或类型定义;5. 可正常使用using指令和定义局部函数,提升代码简洁性与开发效率。

Top-level statements 是 C# 9 引入的一项特性,允许你在不编写完整类和 Main 方法的情况下直接写代码。编译器会自动将这些语句包装进一个隐藏的入口方法中,从而简化程序结构,特别适合小型程序、脚本或学习用途。
传统控制台程序的入口点
在没有 top-level statements 之前,每个 C# 控制台应用都需要一个包含 Main 方法的类:
public class Program{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
这种结构对于简单程序来说显得冗长。
使用 Top-level statements 简化入口
启用 top-level statements 后,你可以直接写逻辑代码,无需定义类或 Main 方法:
using System;Console.WriteLine("Hello World!");
Console.WriteLine($"Arguments: {string.Join(", ", args)}");
上述代码就是合法的完整 C# 程序。编译器会自动生成一个全局的 Main 方法来执行这些语句,args 变量也可直接访问命令行参数。
适用场景与注意事项
top-level statements 特别适用于:
- 小型工具或脚本
- 教学示例
- 快速原型开发
需要注意的是:
- 整个项目只能有一个文件使用 top-level statements
- 该文件不能包含任何命名空间或类型定义(除非在嵌套作用域内)
- 仍可正常使用 using 指令、函数定义(局部函数)、类声明等
你还可以在 top-level 文件中定义本地函数:
using System;Console.WriteLine(Greet("Alice"));
string Greet(string name) => $"Hello, {name}!";
基本上就这些。用 top-level statements 写控制台程序更简洁直观,减少了样板代码,让初学者更容易上手,也提升了小项目的开发效率。










