前言

在C# 9版本中引入了一项新特性:顶级语句,这一特性允许在不显式定义 Main 方法的情况下直接编写代码。

传统的写法

namespace TestStatements
{
    internal class Program
    {
        static void Main(string[] args)
        {
            foreach (var arg in args)
            {
                Console.WriteLine(arg);
            }
            Console.WriteLine("Hello, 追逐时光者!");
        }
    }
}

顶级语句写法

foreach (var arg in args)
{
    Console.WriteLine(arg);
}
Console.WriteLine("Hello, 追逐时光者!");

顶级语句的优势

  • 省去了 Main 方法和命名空间声明,使得代码更加简洁。
  • 特别适合编写简单的控制台应用、脚本和演示代码。
  • 对于初学者来说,不需要了解太多复杂的语法结构就可以开始编写 C# 程序。

顶级语句的不足

  • 顶级语句更适合于简单的程序,对于大型复杂的项目,传统的 Main 方法和命名空间这些还是非常有必要的。
  • 对于习惯了传统结构的开发者来说,顶级语句可能会让代码的组织结构显得不够明确。
  • 如果与其他 C# 版本或一些特定的项目结构混用,可能会导致兼容性问题。

最后总结

顶级语句通过简化代码结构,降低了学习曲线并提高了开发效率,特别适合初学者和编写简单程序的场景。然而,在大型项目中,传统的代码结构依然是必要的。因此,顶级语句和传统方法各有其适用的场景和优势,开发者可以根据具体需求选择使用哪种方式。对于我个人而言还是比较喜欢传统的写法,看起来更直观且代码的组织结构分明。

参考文章

浅谈 C# 中的顶级语句的更多相关文章

  1. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  2. 浅谈MySQL中优化sql语句查询常用的30种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  3. Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)

    原文链接   http://www.jb51.net/article/39221.htm 这篇文章大家都在转载,估计写的有条理吧,本人稍微做一下补充 1.对查询进行优化,应尽量避免全表扫描,首先应考虑 ...

  4. 浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  5. 浅谈Java中switch分支语句

    前言: 在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句.那么现在看完这 ...

  6. 浅谈Javascript中的Label语句

    如: begin: for (var i = 0; i < 10 ; i++ ){ alert(i); } 举一个比较典型的例子,看完后即明白 Label 的应用:(未添加 Label) var ...

  7. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  8. 转【】浅谈sql中的in与not in,exists与not exists的区别_

    浅谈sql中的in与not in,exists与not exists的区别   1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...

  9. 浅谈sql中的in与not in,exists与not exists的区别

    转 浅谈sql中的in与not in,exists与not exists的区别   12月12日北京OSC源创会 —— 开源技术的年终盛典 »   sql exists in 1.in和exists ...

  10. 浅谈Java中的深拷贝和浅拷贝(转载)

    浅谈Java中的深拷贝和浅拷贝(转载) 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: ...

随机推荐

  1. webpack4.15.1 学习笔记(十) — 常见 loader 使用

    目录 style -loader <= css-loader <= less-loader postcss-loader file-loader url-loader html-withi ...

  2. Django导出EXCEL并确保表头左右两列显示

    以下是导出EXCEL确保表头左右两列显示正确值的代码示例: from openpyxl import Workbook from openpyxl.styles import Alignment # ...

  3. Django 结合Vue实现前端页面导出为PDF

    Django结合Vue实现前端页面导出为PDF by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址: ht ...

  4. 自己在本地搭建 git 版本仓库服务器

    请确保你安装了 git 的图形化工具和 git 软件 首先先创建一个目录作为你的项目工程目录,比如 e:/gitTest 其次右键 git init. 然后指定一个 git 服务器目录,例如:e:/g ...

  5. linux一行执行多条命令 shell

    要实现在一行执行多条Linux命令,分三种情况: 1.&& 举例: lpr /tmp/t2 && rm /tmp/t2 第2条命令只有在第1条命令成功执行之后才执行.当 ...

  6. mybatis-plus的BaseMapper调用报错:Invalid bound statement

    1.yml的配置, 2.@mapper/@mapperScan 3.注意版本依赖冲突,本人第一次使用spring-boot-start-parent3.2.3与mybatis-plus-start-p ...

  7. Redis持久化RDB与AOF介绍

    就是将内存中的数据通过rdb/aof进行持久化写入硬盘中 rdb就是进行持久化的快照 在指定的时间间隔内,执行数据集的时间点快照.这个快照文件称为(dump.rdb)RDB文件,Redis DataB ...

  8. python adb 安卓app性能测试

    主要是进行cpu.内存.冷启动.热启动.流量.电量的监测 可获取到相关数据,同竞类产品对比,或者同版本对比 cpustatus adb命令:adb shell "dumpsys cpuinf ...

  9. nvtop —— GPU使用情况的可视化工具

    安装: sudo apt install nvtop

  10. vim 插件汇总网站

    在网上找到了一个vim插件的汇总网站,上面有对vim插件进行汇总.简介.使用排名等,十分适合vim用户在上面寻找一些可用的插件. 网址: https://vimawesome.com/ 虽然我没有太用 ...