日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

如何在 C#9 中使用顶级程序 (top-level)

發(fā)布時(shí)間:2023/12/4 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 C#9 中使用顶级程序 (top-level) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng)我們用 C# 進(jìn)行編碼的時(shí)候,總需要寫很多的模板代碼,即使是最簡單的 console 程序,想象一下,如果去測試一個(gè) 類庫 或者 API 的功能,通常你會(huì)用 Console 程序去實(shí)現(xiàn),在開始工作的時(shí)候會(huì)發(fā)現(xiàn)你受到了 C# 標(biāo)準(zhǔn)模板的限制,業(yè)務(wù)邏輯必須要寫在 Main 里,如下代碼所示:

class?Program{static?void?Main(string[]?args){//todo}}

頂級(jí)程序 是 C#9 中引入的一個(gè)新概念,允許你直接寫自己的業(yè)務(wù)邏輯而不必受到模板代碼的限制,頂級(jí)程序 是一個(gè)非常????????的特性,可以讓代碼更加的干凈,簡短和可讀,你可以通過頂級(jí)程序去探索新的 idea,這篇文章將會(huì)討論如何在 C#9 中使用頂級(jí)程序。

頂級(jí)程序

在 C# 9.0 之前,下面的寫法在 Console 程序中已經(jīng)是最小化的了。

using?System; namespace?IDG_Top_Level_Programs_Demo {class?Program{static?void?Main(string[]?args){Console.WriteLine("Hello?World!");}} }

在 C# 9.0 時(shí)代,可以祭出 頂級(jí)程序 來消除那些煩人的模板代碼,讓代碼的邏輯意圖更明顯,改造后的代碼如下:

using?System; Console.WriteLine("Hello?World!");

頂級(jí)程序中的方法

你也可以在頂級(jí)程序中使用方法,如下例子所示:

System.Console.WriteLine(DisplayMessage("Joydip!")); System.Console.Read(); static?string?DisplayMessage(string?name) {return?"Hello,?"?+?name; }

程序跑起來后,控制臺(tái)將會(huì)輸出:Hello, Joydip!

頂級(jí)程序中的類

你也可以在頂級(jí)程序中使用類,結(jié)構(gòu)體,枚舉,下面的代碼展示了如何使用。

System.Console.WriteLine(new?Author().DisplayMessage("Joydip!")); System.Console.Read(); public?class?Author {public?string?DisplayMessage(string?name){return?"Hello,?"?+?name;} }

頂級(jí)程序的原理分析

現(xiàn)在我們來分析一下,頂級(jí)程序的底層邏輯到底是怎么樣的,它本質(zhì)上是一種語法糖,一種編譯器的特性,也就是說你沒有寫模板代碼的時(shí)候,編譯器會(huì)幫你生成,替你負(fù)重前行,參考下面的代碼段。

using?System; Console.WriteLine("Hello?World!");

然后用在線工具 SharpLab https://sharplab.io/ ?看一下編譯器替你補(bǔ)齊的代碼。

using?System; using?System.Diagnostics; using?System.Reflection; using?System.Runtime.CompilerServices; using?System.Security; using?System.Security.Permissions; [assembly:?CompilationRelaxations(8)] [assembly:?RuntimeCompatibility(WrapNonExceptionThrows?=?true)] [assembly:?Debuggable(DebuggableAttribute.DebuggingModes.Default?|?DebuggableAttribute.DebuggingModes.DisableOptimizations?|?DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints?|?DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly:?SecurityPermission(SecurityAction.RequestMinimum,?SkipVerification?=?true)] [assembly:?AssemblyVersion("0.0.0.0")] [module:?UnverifiableCode] [CompilerGenerated] internal?static?class?<Program>$ {private?static?void?<Main>$(string[]?args){Console.WriteLine("Hello?World!");} }

總的來說,頂級(jí)程序 非常適合那些想 快速試錯(cuò),驗(yàn)證想法 的場景,有一點(diǎn)要特別注意,應(yīng)用程序中只能僅有一個(gè)文件使用 頂級(jí)程序,如果存在多個(gè),編譯器會(huì)拋出錯(cuò)誤的,還有一點(diǎn),如果你是 C# 新手,你可能不理解頂級(jí)程序的底層邏輯,更好的方式就是老老實(shí)實(shí)的使用原生模板代碼,當(dāng)你主宰了 Main 后,你將會(huì)理解 頂級(jí)程序 是多么的短小精悍!

譯文鏈接:https://www.infoworld.com/article/3612196/how-to-use-top-level-programs-in-csharp-9.html

總結(jié)

以上是生活随笔為你收集整理的如何在 C#9 中使用顶级程序 (top-level)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。