C#中的Top-level statements怎么用 C# 9顶层语句教程

来源:这里教程网 时间:2026-02-21 17:38:52 作者:

Top-level statements(顶层语句)是 C# 9 引入的简化语法,让你不用写

class Program
static void Main()
就能直接写可执行代码。它不是“去掉 Main”,而是编译器帮你自动生成一个隐式的
Main
方法——适合脚本、工具、学习或小型程序。

什么时候可以用顶层语句

项目 SDK 必须是

Microsoft.NET.Sdk
(即普通 .NET 5+ 控制台项目),且
LanguageVersion
至少为
9.0
(VS 2019 16.8+ 或 VS 2022 默认支持)。新建 .NET 6+ 控制台项目时,默认就是顶层语句风格。

一个项目中只能有一个
.cs
文件包含顶层语句(通常叫
Program.cs
其他文件仍可写常规类、方法、命名空间——顶层文件里也能用
using
、声明局部函数、甚至定义类型(但不推荐)
不能在类/方法内部写顶层语句;也不能在多个文件里同时写执行逻辑

最简写法:直接写代码

新建一个

Program.cs
,内容可以只有这一行:

Console.WriteLine("Hello, World!");

编译运行就输出 —— 编译器自动把它包进

static void Main(string[] args)
里。你不需要声明命名空间、类或 Main 方法。

访问命令行参数和返回值

顶层语句中,

args
直接可用(对应
Main
的参数),也可以用
return
设置退出码:

if (args.Length == 0)<br>{<br>    Console.WriteLine("Usage: MyApp <name>");<br>    return 1;<br>}<br>Console.WriteLine($"Hello, {args[0]}!");

等价于传统写法里的

static void Main(string[] args)
+
Environment.Exit(1)
,但更直观。

需要结构?加命名空间和 using 没问题

顶层语句不排斥组织代码。你可以写:

using System;<br>using static System.Console;<br><br>namespace MyTool;<br><br>WriteLine("Starting...");<br>var now = DateTime.Now;<br>WriteLine($"Time: {now}");

using
namespace
放在顶层语句前即可,它们作用于整个文件(包括隐式 Main)。但注意:命名空间不能嵌套在语句块里,必须在最外层。

基本上就这些。它不改变语言能力,只是减少样板代码——写小工具、教学示例或 CLI 脚本时特别顺手,大项目里仍建议回归传统结构以保可维护性。

相关推荐