这篇文章主要讲解了“怎么在C#9中使用顶级程序 top-level”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在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 后,你将会理解 顶级程序
是多么的短小精悍!
译文链接:https://www.infoworld.com/article/3612196/how-to-use-top-level-programs-in-csharp-9.html
感谢各位的阅读,以上就是“怎么在C#9中使用顶级程序 top-level”的内容了,经过本文的学习后,相信大家对怎么在C#9中使用顶级程序 top-level这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/135083/blog/5011126