前言
有群友问:为什么C#要采用顶级语句?
.NET6发布后,C#10莫名引入了顶级语句,这是一种简化代码结构的语言特性。在此之前,C#程序必须包含一个入口点,通常是Main方法,然后在该方法中编写主要的程序逻辑。而使用顶级语句后,可以直接在文件的顶部编写执行代码,而无需显式地定义一个Main方法。为啥要用顶级语句呢?先来看官方的总结:“使用顶级语句,可以更轻松地创建简单的程序来探索新的算法。可以尝试使用不同的代码片段来试验算法。了解了哪些可用后,可以重构代码,使其更易于维护。接下来本文将介绍为什么引入了顶级语句。
为什么会引入
随着Python的普及,微软也与时俱进,抛弃了Main函数。当然还是如下几点。
1、简化入门:顶级语句使得编写小型程序或学习 C# 变得更加简单。你可以直接在文件中编写代码,而不必担心方法和类的结构。
2、减少模板代码:在传统的C#程序中,你需要定义类和方法,即使只是写一小段代码。顶级语句减少了这种冗余,使得代码更加紧凑和易读。
3、更自然的脚本体验:顶级语句让 C# 更接近脚本语言的使用体验。你可以像写Pyhton、javascript脚本一样编写一些简单的程序,而不必担心类和方法的声明。
此功能是不是多此一举呢?
由于使用习惯传统有main函数的.NET项目,突然来个顶级语句还真有点不习惯,小编有时候在创建项目的时候就选择了禁用它。那么顶级语句做了彻底改变吗?它是多此一举吗?我们看看它的底层是啥?
首先新建一个顶级语句的.NET8的控制台项目,并输出如下代码。
Console.WriteLine("Hello, 欢迎关注dotNET开发跳槽!");
然后我们使用ILspy反编译工具来看看生成的代码是啥?
结论:经过反编译底层还是有main方法。可以说明C#本质上没有改变,主要还是为开发者提供更简洁、更易上手的编程体验。从某种意义上来说它也是C#的语法糖。
大家对C#要采用顶级语句有啥看法,欢迎留言讨论。
参考:Learn.microsoft.com/zh-cn/dotnet/csharp/tutorials/top-level-statements
来源公众号:DotNet开发跳槽