成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 C#9 中使用程序 (Top-Level)

開發 后端
頂級程序的底層邏輯到底是怎么樣的,它本質上是一種語法糖,一種編譯器的特性,也就是說你沒有寫模板代碼的時候,編譯器會幫你生成,替你負重前行,參考下面的代碼段。

[[390041]]

本文轉載自微信公眾號「碼農讀書」,作者碼農讀書 。轉載本文請聯系碼農讀書公眾號。

當我們用 C# 進行編碼的時候,總需要寫很多的模板代碼,即使是最簡單的 console 程序,想象一下,如果去測試一個 類庫 或者 API 的功能,通常你會用 Console 程序去實現,在開始工作的時候會發現你受到了 C# 標準模板的限制,業務邏輯必須要寫在 Main 里,如下代碼所示:

  1. class Program 
  2.    { 
  3.        static void Main(string[] args) 
  4.        { 
  5.            //todo 
  6.        } 
  7.    } 

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

頂級程序

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

  1. using System; 
  2. namespace IDG_Top_Level_Programs_Demo 
  3.     class Program 
  4.     { 
  5.         static void Main(string[] args) 
  6.         { 
  7.             Console.WriteLine("Hello World!"); 
  8.         } 
  9.     } 

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

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

頂級程序中的方法

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

  1. System.Console.WriteLine(DisplayMessage("Joydip!")); 
  2. System.Console.Read(); 
  3. static string DisplayMessage(string name
  4.     return "Hello, " + name

程序跑起來后,控制臺將會輸出:Hello, Joydip!

頂級程序中的類

你也可以在頂級程序中使用類,結構體,枚舉,下面的代碼展示了如何使用。

  1. System.Console.WriteLine(new Author().DisplayMessage("Joydip!")); 
  2. System.Console.Read(); 
  3. public class Author 
  4.     public string DisplayMessage(string name
  5.     { 
  6.         return "Hello, " + name
  7.     } 

頂級程序的原理分析

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

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

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

  1. using System; 
  2. using System.Diagnostics; 
  3. using System.Reflection; 
  4. using System.Runtime.CompilerServices; 
  5. using System.Security; 
  6. using System.Security.Permissions; 
  7. [assembly: CompilationRelaxations(8)] 
  8. [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] 
  9. [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] 
  10. [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] 
  11. [assembly: AssemblyVersion("0.0.0.0")] 
  12. [module: UnverifiableCode] 
  13. [CompilerGenerated] 
  14. internal static class <Program>$ 
  15.     private static void <Main>$(string[] args) 
  16.     { 
  17.         Console.WriteLine("Hello World!"); 
  18.     } 

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

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

 

責任編輯:武曉燕 來源: 碼農讀書
相關推薦

2020-12-31 07:31:10

C# 反射數據

2021-03-07 16:37:52

C#應用程序

2021-02-01 12:36:59

C# Channels存儲

2021-01-19 05:30:55

C# 8異步流IEnumerable

2021-01-18 05:18:18

C# 8模式C# 7

2022-05-17 08:25:10

TypeScript接口前端

2022-06-23 08:00:53

PythonDateTime模塊

2021-06-09 09:36:18

DjangoElasticSearLinux

2021-03-09 07:27:40

Kafka開源分布式

2015-08-27 09:46:09

swiftAFNetworkin

2024-01-18 08:37:33

socketasyncio線程

2011-08-10 09:31:41

Hibernateunion

2021-01-22 05:53:08

C# IndexRange

2021-01-28 05:14:40

C#接口簽名

2019-09-16 19:00:48

Linux變量

2020-11-30 11:55:07

Docker命令Linux

2014-07-02 09:47:06

SwiftCocoaPods

2024-09-06 11:34:15

RustAI語言

2020-04-09 10:18:51

Bash循環Linux

2025-07-01 02:23:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩国产欧美 | 日韩精品亚洲专区在线观看 | 日本电影韩国电影免费观看 | 91pron在线 | 日韩成人在线免费视频 | 国产精品成人一区二区三区 | 欧美精品网 | 91av在线免费播放 | 一区二区三区四区电影 | av国产精品 | 少妇特黄a一区二区三区88av | 中文字幕动漫成人 | 国产日韩欧美二区 | 欧美在线观看一区 | 成人免费视频网站在线观看 | heyzo在线| 毛片高清 | 视频在线一区二区 | 成人免费在线视频 | 国产精品久久久久久久久 | 午夜爽爽男女免费观看hd | 免费看的av | 91麻豆精品国产91久久久久久 | 亚洲欧洲成人 | 亚洲午夜三级 | 四虎影院欧美 | 伊人春色成人网 | 日本三级全黄三级三级三级口周 | 国产麻豆一区二区三区 | 日韩一区二区三区在线视频 | 91精品在线播放 | 国产目拍亚洲精品99久久精品 | 精品国产一区二区三区久久久蜜月 | 亚洲精品久久视频 | 国产精品爱久久久久久久 | 日日夜精品视频 | 国产清纯白嫩初高生在线播放视频 | 五月香婷婷 | 国产a视频| av影音 | 国产 日韩 欧美 中文 在线播放 |