這篇文章主要講解了“怎么在C#9中使用頂級程序 top-level”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在C#9中使用頂級程序 top-level”吧!
10年積累的網(wǎng)站制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有蒼梧免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
當(dāng)我們用 C# 進(jìn)行編碼的時(shí)候,總需要寫很多的模板代碼,即使是最簡單的 console 程序,想象一下,如果去測試一個(gè) 類庫
或者 API
的功能,通常你會用 Console 程序去實(shí)現(xiàn),在開始工作的時(shí)候會發(fā)現(xiàn)你受到了 C# 標(biāo)準(zhǔn)模板的限制,業(yè)務(wù)邏輯必須要寫在 Main 里,如下代碼所示:
class Program
{
static void Main(string[] args)
{
//todo
}
}
頂級程序
是 C#9 中引入的一個(gè)新概念,允許你直接寫自己的業(yè)務(wù)邏輯而不必受到模板代碼的限制,頂級程序
是一個(gè)非常????????的特性,可以讓代碼更加的干凈,簡短和可讀,你可以通過頂級程序去探索新的 idea,這篇文章將會討論如何在 C#9 中使用頂級程序。
在 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í)代,可以祭出 頂級程序
來消除那些煩人的模板代碼,讓代碼的邏輯意圖更明顯,改造后的代碼如下:
using System;
Console.WriteLine("Hello World!");
你也可以在頂級程序中使用方法,如下例子所示:
System.Console.WriteLine(DisplayMessage("Joydip!"));
System.Console.Read();
static string DisplayMessage(string name)
{
return "Hello, " + name;
}
程序跑起來后,控制臺將會輸出:Hello, Joydip!
你也可以在頂級程序
中使用類,結(jié)構(gòu)體,枚舉,下面的代碼展示了如何使用。
System.Console.WriteLine(new Author().DisplayMessage("Joydip!"));
System.Console.Read();
public class Author
{
public string DisplayMessage(string name)
{
return "Hello, " + name;
}
}
現(xiàn)在我們來分析一下,頂級程序的底層邏輯到底是怎么樣的,它本質(zhì)上是一種語法糖,一種編譯器的特性,也就是說你沒有寫模板代碼的時(shí)候,編譯器會幫你生成,替你負(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 $
{
private static void $(string[] args)
{
Console.WriteLine("Hello World!");
}
}
總的來說,頂級程序
非常適合那些想 快速試錯(cuò),驗(yàn)證想法的場景,有一點(diǎn)要特別注意,應(yīng)用程序中只能僅有一個(gè)文件使用 頂級程序
,如果存在多個(gè),編譯器會拋出錯(cuò)誤的,還有一點(diǎn),如果你是 C# 新手,你可能不理解頂級程序的底層邏輯,更好的方式就是老老實(shí)實(shí)的使用原生模板代碼,當(dāng)你主宰了 Main 后,你將會理解 頂級程序
是多么的短小精悍!
譯文鏈接:https://www.infoworld.com/article/3612196/how-to-use-top-level-programs-in-csharp-9.html
感謝各位的閱讀,以上就是“怎么在C#9中使用頂級程序 top-level”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么在C#9中使用頂級程序 top-level這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!