如何在C#9 中使用頂級程序 (top-level)
當我們用 C# 進行編碼的時候,總需要寫很多的模板代碼,即使是最簡單的 console 程序,想象一下,如果去測試一個 類庫 或者 API 的功能,通常你會用 Console 程序去實現,在開始工作的時候會發現你受到瞭 C# 標準模板的限制,業務邏輯必須要寫在 Main 裡,如下代碼所示:
class Program { static void Main(string[] args) { //todo } }
頂級程序 是 C#9 中引入的一個新概念,允許你直接寫自己的業務邏輯而不必受到模板代碼的限制,頂級程序 是一個非常🐂👃的特性,可以讓代碼更加的幹凈,簡短和可讀,你可以通過頂級程序去探索新的 idea,這篇文章將會討論如何在 C#9 中使用頂級程序。
頂級程序
在 C# 9.0 之前,下面的寫法在 Console 程序中已經是最小化的瞭。
using System; namespace IDG_Top_Level_Programs_Demo { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
在 C# 9.0 時代,可以祭出 頂級程序 來消除那些煩人的模板代碼,讓代碼的邏輯意圖更明顯,改造後的代碼如下:
using System; Console.WriteLine("Hello World!");
頂級程序中的方法
你也可以在頂級程序中使用方法,如下例子所示:
System.Console.WriteLine(DisplayMessage("Joydip!")); System.Console.Read(); static string DisplayMessage(string name) { return "Hello, " + name; }
程序跑起來後,控制臺將會輸出:Hello, Joydip!
頂級程序中的類
你也可以在頂級程序中使用類,結構體,枚舉,下面的代碼展示瞭如何使用。
System.Console.WriteLine(new Author().DisplayMessage("Joydip!")); System.Console.Read(); public class Author { public string DisplayMessage(string name) { return "Hello, " + name; } }
頂級程序的原理分析
現在我們來分析一下,頂級程序的底層邏輯到底是怎麼樣的,它本質上是一種語法糖,一種編譯器的特性,也就是說你沒有寫模板代碼的時候,編譯器會幫你生成,替你負重前行,參考下面的代碼段。
using System; Console.WriteLine("Hello World!");
然後用在線工具 SharpLab https://sharplab.io/ 看一下編譯器替你補齊的代碼。
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!"); } }
總的來說,頂級程序 非常適合那些想 快速試錯,驗證想法 的場景,有一點要特別註意,應用程序中隻能僅有一個文件使用 頂級程序,如果存在多個,編譯器會拋出錯誤的,還有一點,如果你是 C# 新手,你可能不理解頂級程序的底層邏輯,更好的方式就是老老實實的使用原生模板代碼,當你主宰瞭 Main 後,你將會理解 頂級程序 是多麼的短小精悍!
以上就是如何在C#9 中使用頂級程序 (top-level)的詳細內容,更多關於C#9 中使用頂級程序 (top-level)的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- None Found