前言
在 C# 9.0 版本之前,即使只编写一行输出 “Hello world” 的 C# 代码,也需要创建一个 C# 类,并且需要为这个 C# 类添加 Main 方法,才能在 Main 方法中编写代码。从 C# 9.0 开始,C# 增加了 “顶级语句” 语法,从此程序员可以直接在 C# 文件中编写入口代码,不再需要声明类和 Main 方法。
今天我们来聊聊这个顶级语句。
顶级语句的表现形式
-
创建一个 .NET Core Console 项目
-
清空 Program.cs 文件中的预定义模板生成的代码
-
直接在 Program.cs 文件里输入以下语句
Console.WriteLine("Hello, World!");
-
运行项目,控制台直接打印出 “Hello, World!”
-
至此,就完成顶级语句的演示,无需声明命名空间和类,也无需定义 Main 方法,就完成以前 Main 方法所做的事情。
顶级语句的本质
顶级语句实例上是一个语法糖,旨在简化程序的结构,使得编写简单程序或脚本更加方便。
通过反编译上面的程序生成的程序集也可以证明这一点,实际上编译器在后台给这个 Program.cs 文件自动生成了一个名为 Program 类和 Main 方法。
顶级语句的优势
-
简化代码结构
可以在顶级语句直接使用 await 语法调用异步方法和创建方法,比如以下代码:
// 在顶级语句中,可以直接使用 await 语法调用异步方法, // 而且在顶级语句文件中也可以声明方法 int i = 1, j = 2; int w = Add(i, j); await File.WriteAllTextAsync(@"D:\NETCoreSample\1.txt", $"Hellow {w}"); int Add(int i, int j) { return i + j; }
-
快速开发快速测试
有时候需要测试一个简单功能,比如验证一个正则表达式是否工作,程序 员就可以利用顶级语句快速编写和测试小段代码,而不需要创建完整的类和方法结构。
-
提高可读性
顶级语句减少了样板代码,代码逻辑更加直观,代码更加简洁易读。
-
适用于脚本
对于一些简单的脚本或命令行工具,顶级语句提供了更自然的编写方式
顶级语句的注意事项
因为顶级语句的本质只是一个语法糖,只是让编译器帮助程序员简化工作,因此在使用时要注意:
-
同一个项目中只能有一个文件具有顶级语句
-
顶级语句并不是用来替代原本的 Main 方法的,我们仍然可以用传统的 Main 方法编写入口代码
总结
C# 顶级语句的推出有效地简化了代码书写,特别适合于小型程序和脚本。
它的出现提高了代码的可读性和可维护性,使得程序员可以更专注于逻辑实现而非代码结构。
同时在使用时也要清楚它的本质,避开一些不必要的坑。
我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊程序人生,共同学习,共同进步