简述C# 9.0增加的顶级语句--不使用 Main 方法的程序
1.简述:
我们都知道,C#作为大型协作工业级编程语言,在编写简单应用的时候可能产生的入口代码比实际的需求代码还多的尴尬现象,这些入口代码在老袁的眼中显得非常碍眼。有没有像其它编程语言特别是脚本语言能快速编写简单可用的程序的可能呢?答案当然是有的,C# 9.0增加了顶级语句功能,从 C# 9 开始,无需在控制台应用程序项目中显式包含 Main
方法。 相反,可以使用顶级语句功能最大程度地减少必须编写的代码。 在这种情况下,编译器将为应用程序生成类和 Main
方法入口点。
借助顶级语句,可以为小实用程序编写简单的程序。 它们还使初次接触 C# 的程序员能够更轻松地开始学习和编写代码。
2.语法要求:
- 顶级语句只能在主入口Main方法处使用。因为一个应用程序只能有一个入口点。 一个项目只能有一个包含顶级语句的文件。
- 如果包含 using 指令,则它们必须首先出现在文件中。
- 顶级语句可以引用
args
变量来访问输入的任何命令行参数。args
变量永远不会为 null,但如果未提供任何命令行参数,则其Length
将为零。 - 具有顶级语句的文件还可以包含命名空间和类型定义,但它们必须位于顶级语句之后。
- 在顶级语句中,可以使用await,这样编译器会自动生成异步程序入口方法。
- 顶级语句也可以返回int值,编译器会自动生成带返回值的程序入口方法。
顶级代码包含 | 隐式 Main 签名 |
await 和 return |
static async Task<int> Main(string[] args) |
await | static async Task Main(string[] args) |
return | static int Main(string[] args) |
无 await 或 return |
static void Main(string[] args) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步