国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

為什么C#要采用頂級(jí)語(yǔ)句?

這篇具有很好參考價(jià)值的文章主要介紹了為什么C#要采用頂級(jí)語(yǔ)句?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

有群友問:為什么C#要采用頂級(jí)語(yǔ)句?

.NET6發(fā)布后,C#10莫名引入了頂級(jí)語(yǔ)句,這是一種簡(jiǎn)化代碼結(jié)構(gòu)的語(yǔ)言特性。在此之前,C#程序必須包含一個(gè)入口點(diǎn),通常是Main方法,然后在該方法中編寫主要的程序邏輯。而使用頂級(jí)語(yǔ)句后,可以直接在文件的頂部編寫執(zhí)行代碼,而無需顯式地定義一個(gè)Main方法。為啥要用頂級(jí)語(yǔ)句呢?先來看官方的總結(jié):“使用頂級(jí)語(yǔ)句,可以更輕松地創(chuàng)建簡(jiǎn)單的程序來探索新的算法??梢試L試使用不同的代碼片段來試驗(yàn)算法。了解了哪些可用后,可以重構(gòu)代碼,使其更易于維護(hù)。接下來本文將介紹為什么引入了頂級(jí)語(yǔ)句。

為什么會(huì)引入

隨著Python的普及,微軟也與時(shí)俱進(jìn),拋棄了Main函數(shù)。當(dāng)然還是如下幾點(diǎn)。

1、簡(jiǎn)化入門:頂級(jí)語(yǔ)句使得編寫小型程序或?qū)W習(xí) C# 變得更加簡(jiǎn)單。你可以直接在文件中編寫代碼,而不必?fù)?dān)心方法和類的結(jié)構(gòu)。

2、減少模板代碼:在傳統(tǒng)的C#程序中,你需要定義類和方法,即使只是寫一小段代碼。頂級(jí)語(yǔ)句減少了這種冗余,使得代碼更加緊湊和易讀。

3、更自然的腳本體驗(yàn):頂級(jí)語(yǔ)句讓 C# 更接近腳本語(yǔ)言的使用體驗(yàn)。你可以像寫Pyhton、javascript腳本一樣編寫一些簡(jiǎn)單的程序,而不必?fù)?dān)心類和方法的聲明。

此功能是不是多此一舉呢?

由于使用習(xí)慣傳統(tǒng)有main函數(shù)的.NET項(xiàng)目,突然來個(gè)頂級(jí)語(yǔ)句還真有點(diǎn)不習(xí)慣,小編有時(shí)候在創(chuàng)建項(xiàng)目的時(shí)候就選擇了禁用它。那么頂級(jí)語(yǔ)句做了徹底改變嗎?它是多此一舉嗎?我們看看它的底層是啥?

首先新建一個(gè)頂級(jí)語(yǔ)句的.NET8的控制臺(tái)項(xiàng)目,并輸出如下代碼。

Console.WriteLine("Hello, 歡迎關(guān)注dotNET開發(fā)跳槽!");

然后我們使用ILspy反編譯工具來看看生成的代碼是啥?

image.png

結(jié)論:經(jīng)過反編譯底層還是有main方法??梢哉f明C#本質(zhì)上沒有改變,主要還是為開發(fā)者提供更簡(jiǎn)潔、更易上手的編程體驗(yàn)。從某種意義上來說它也是C#的語(yǔ)法糖。

大家對(duì)C#要采用頂級(jí)語(yǔ)句有啥看法,歡迎留言討論。

參考:Learn.microsoft.com/zh-cn/dotnet/csharp/tutorials/top-level-statements文章來源地址http://www.zghlxwxcb.cn/news/detail-790268.html

來源公眾號(hào):DotNet開發(fā)跳槽???

到了這里,關(guān)于為什么C#要采用頂級(jí)語(yǔ)句?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 為什么 OpenAI 團(tuán)隊(duì)采用 Python 開發(fā)他們的后端服務(wù)?

    為什么 OpenAI 團(tuán)隊(duì)采用 Python 開發(fā)他們的后端服務(wù)?

    Python,年齡可能比很多讀者都要大,但是它在更新快速的編程界卻一直表現(xiàn)出色,甚至有人把它比作是編程界的《葵花寶典》,只是Python的速成之法相較《葵花寶典》有過之而無不及。 Python簡(jiǎn)潔,高效的特點(diǎn),大大提升了程序員的編碼速度,極大的提高了程序員的辦公效率,

    2024年02月02日
    瀏覽(29)
  • 開發(fā)人員是第一個(gè)在工作中采用人工智能的群體,為什么這很重要

    開發(fā)人員是第一個(gè)在工作中采用人工智能的群體,為什么這很重要

    從10年前作為一名開發(fā)人員開始在GitHub工作到成為首席運(yùn)營(yíng)官,我了解到開發(fā)人員通常是組織其他部門變革的風(fēng)向標(biāo)。 作為新技術(shù)和實(shí)踐的早期采用者,開發(fā)人員通常是商業(yè)環(huán)境變化的風(fēng)向標(biāo),這就是為什么在 GitHub,我們相信企業(yè)越了解開發(fā)人員需要什么才能茁壯成長(zhǎng),他們

    2024年02月19日
    瀏覽(27)
  • bash腳本if語(yǔ)句比較為什么要用x

    如下進(jìn)行PCIe設(shè)備的檢測(cè)和計(jì)數(shù),并執(zhí)行重啟操作的例子代碼: 在給定的代碼片段中,使用 x 是為了避免在比較時(shí)出現(xiàn)空字符串的問題。這是一種常見的技巧,用于確保比較操作的準(zhǔn)確性。 在這個(gè)特定的語(yǔ)句中, x${devIDFunc0} 是用來檢查變量 devIDFunc0 是否為空字符串。通過在變

    2024年02月08日
    瀏覽(19)
  • 面試官靈魂拷問:為什么 SQL 語(yǔ)句不要過多的 join?

    在SQL中,JOIN是一種用于將兩個(gè)或多個(gè)表中的數(shù)據(jù)行連接在一起的操作。JOIN操作通過查找這些表之間的共同列,并將它們彼此匹配來實(shí)現(xiàn)。 JOIN操作有多種類型,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 等,其中 INNER JOIN 是最常見的類型。它將兩個(gè)表中的行進(jìn)行匹配,只

    2023年04月09日
    瀏覽(20)
  • C#為什么非要把函數(shù)叫方法?

    引子 \\\"某呼\\\"網(wǎng)友提問“C#為什么非要把函數(shù)叫方法?”,看到這個(gè)問題還真不知道怎么回答。要想知道C#為什么叫方法,還得從傳統(tǒng)面向過程語(yǔ)言說起。 方法的由來 函數(shù)(function)是面向過程編程語(yǔ)言里,對(duì)可以獨(dú)立調(diào)用代碼段的另一種叫法,因?yàn)橥ǔS袛?shù)個(gè)輸入和一個(gè)輸出

    2024年02月09日
    瀏覽(19)
  • C# 線程本地存儲(chǔ) 為什么線程間值不一樣

    C# 線程本地存儲(chǔ) 為什么線程間值不一樣

    有朋友在微信里面問我,為什么用 ThreadStatic 標(biāo)記的字段,只有第一個(gè)線程拿到了初始值,其他線程都是默認(rèn)值,讓我能不能幫他解答一下,尼瑪,我也不是神仙什么都懂,既然問了,那我試著幫他解答一下,也給后面類似疑問的朋友解個(gè)惑吧。 為了方便講述,定義一個(gè) Th

    2024年01月23日
    瀏覽(29)
  • 淺析 C# Console 控制臺(tái)為什么也會(huì)卡死

    淺析 C# Console 控制臺(tái)為什么也會(huì)卡死

    在分析旅程中,總會(huì)有幾例控制臺(tái)的意外卡死導(dǎo)致的生產(chǎn)事故,有經(jīng)驗(yàn)的朋友都知道,控制臺(tái)卡死一般是動(dòng)了 快速編輯窗口 的緣故,截圖如下: 雖然知道緣由,但一直沒有時(shí)間探究底層原理,市面上也沒有對(duì)這塊的底層原理介紹,昨天花了點(diǎn)時(shí)間簡(jiǎn)單探究了下,算是記錄分

    2024年02月08日
    瀏覽(85)
  • C#: Json序列化和反序列化,集合為什么多出來一些元素?

    C#: Json序列化和反序列化,集合為什么多出來一些元素?

    如下面的例子,很容易看出問題: 如果類本身的無參構(gòu)造函數(shù),?就添加了一些元素,序列化,再反序列化,會(huì)導(dǎo)致元素增加。 如果要避免,必須添加: new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Replace }

    2024年02月10日
    瀏覽(19)
  • 【C#】【命名空間(namespace)】.NET6.0后支持的頂級(jí)語(yǔ)句使用問題

    創(chuàng)建C#項(xiàng)目且使用.Net6.0以上的版本時(shí),默認(rèn)code會(huì)使用頂級(jí)語(yǔ)句形式: 1、略去static void Main(String[ ] args)主方法入口; 2、隱式使用(即隱藏且根據(jù)代碼所需要的類自動(dòng)調(diào)用)其他命名空間(包括): using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net

    2024年02月08日
    瀏覽(26)
  • Netty為什么高效,為什么這么受歡迎?

    Netty為什么高效,為什么這么受歡迎?

    上篇文章通過 Java NIO 的處理流程與 Netty 的總體流程比較,并結(jié)合 Netty 的源碼,可以更加清晰地理解Netty。本文將結(jié)合源碼詳細(xì)解析Netty的高效和強(qiáng)大功能的設(shè)計(jì)原理,學(xué)習(xí) Netty 是如何實(shí)現(xiàn)其卓越的性能和功能特性,也希望可以在日后工作中利用到 Netty 的設(shè)計(jì)思想。 我們先看

    2024年02月12日
    瀏覽(40)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包