为什么C#要采用顶级语句?

这篇具有很好参考价值的文章主要介绍了为什么C#要采用顶级语句?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

有群友问:为什么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反编译工具来看看生成的代码是啥?

image.png

结论:经过反编译底层还是有main方法。可以说明C#本质上没有改变,主要还是为开发者提供更简洁、更易上手的编程体验。从某种意义上来说它也是C#的语法糖。

大家对C#要采用顶级语句有啥看法,欢迎留言讨论。

参考:Learn.microsoft.com/zh-cn/dotnet/csharp/tutorials/top-level-statements文章来源地址https://www.toymoban.com/news/detail-790268.html

来源公众号:DotNet开发跳槽   

到了这里,关于为什么C#要采用顶级语句?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么 OpenAI 团队采用 Python 开发他们的后端服务?

    Python,年龄可能比很多读者都要大,但是它在更新快速的编程界却一直表现出色,甚至有人把它比作是编程界的《葵花宝典》,只是Python的速成之法相较《葵花宝典》有过之而无不及。 Python简洁,高效的特点,大大提升了程序员的编码速度,极大的提高了程序员的办公效率,

    2024年02月02日
    浏览(36)
  • 开发人员是第一个在工作中采用人工智能的群体,为什么这很重要

    从10年前作为一名开发人员开始在GitHub工作到成为首席运营官,我了解到开发人员通常是组织其他部门变革的风向标。 作为新技术和实践的早期采用者,开发人员通常是商业环境变化的风向标,这就是为什么在 GitHub,我们相信企业越了解开发人员需要什么才能茁壮成长,他们

    2024年02月19日
    浏览(43)
  • bash脚本if语句比较为什么要用x

    如下进行PCIe设备的检测和计数,并执行重启操作的例子代码: 在给定的代码片段中,使用 x 是为了避免在比较时出现空字符串的问题。这是一种常见的技巧,用于确保比较操作的准确性。 在这个特定的语句中, x${devIDFunc0} 是用来检查变量 devIDFunc0 是否为空字符串。通过在变

    2024年02月08日
    浏览(43)
  • 面试官灵魂拷问:为什么 SQL 语句不要过多的 join?

    在SQL中,JOIN是一种用于将两个或多个表中的数据行连接在一起的操作。JOIN操作通过查找这些表之间的共同列,并将它们彼此匹配来实现。 JOIN操作有多种类型,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 等,其中 INNER JOIN 是最常见的类型。它将两个表中的行进行匹配,只

    2023年04月09日
    浏览(36)
  • C#为什么非要把函数叫方法?

    引子 \\\"某呼\\\"网友提问“C#为什么非要把函数叫方法?”,看到这个问题还真不知道怎么回答。要想知道C#为什么叫方法,还得从传统面向过程语言说起。 方法的由来 函数(function)是面向过程编程语言里,对可以独立调用代码段的另一种叫法,因为通常有数个输入和一个输出

    2024年02月09日
    浏览(31)
  • C# 线程本地存储 为什么线程间值不一样

    有朋友在微信里面问我,为什么用 ThreadStatic 标记的字段,只有第一个线程拿到了初始值,其他线程都是默认值,让我能不能帮他解答一下,尼玛,我也不是神仙什么都懂,既然问了,那我试着帮他解答一下,也给后面类似疑问的朋友解个惑吧。 为了方便讲述,定义一个 Th

    2024年01月23日
    浏览(44)
  • 浅析 C# Console 控制台为什么也会卡死

    在分析旅程中,总会有几例控制台的意外卡死导致的生产事故,有经验的朋友都知道,控制台卡死一般是动了 快速编辑窗口 的缘故,截图如下: 虽然知道缘由,但一直没有时间探究底层原理,市面上也没有对这块的底层原理介绍,昨天花了点时间简单探究了下,算是记录分

    2024年02月08日
    浏览(49)
  • C#: Json序列化和反序列化,集合为什么多出来一些元素?

    如下面的例子,很容易看出问题: 如果类本身的无参构造函数, 就添加了一些元素,序列化,再反序列化,会导致元素增加。 如果要避免,必须添加: new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Replace }

    2024年02月10日
    浏览(43)
  • 【C#】【命名空间(namespace)】.NET6.0后支持的顶级语句使用问题

    创建C#项目且使用.Net6.0以上的版本时,默认code会使用顶级语句形式: 1、略去static void Main(String[ ] args)主方法入口; 2、隐式使用(即隐藏且根据代码所需要的类自动调用)其他命名空间(包括): using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net

    2024年02月08日
    浏览(36)
  • Netty为什么高效,为什么这么受欢迎?

    上篇文章通过 Java NIO 的处理流程与 Netty 的总体流程比较,并结合 Netty 的源码,可以更加清晰地理解Netty。本文将结合源码详细解析Netty的高效和强大功能的设计原理,学习 Netty 是如何实现其卓越的性能和功能特性,也希望可以在日后工作中利用到 Netty 的设计思想。 我们先看

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包