C#开发入门到精通之在 C#9 中使用程序 (Top-Level)
小职 2021-04-12 来源 :码农读书 阅读 735 评论 0

摘要:本文主要介绍了C#开发入门到精通之在 C#9 中使用程序 (Top-Level),通过具体的内容向大家展现,希望对大家C#开发的学习有所帮助。

本文主要介绍了C#开发入门到精通之在 C#9 中使用程序 (Top-Level),通过具体的内容向大家展现,希望对大家C#开发的学习有所帮助。

C#开发入门到精通之在 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!");

 C#开发入门到精通之在 C#9 中使用程序 (Top-Level)

 

顶级程序中的方法

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

 

System.Console.WriteLine(DisplayMessage("Joydip!"));

System.Console.Read();

static string DisplayMessage(string name)

{

    return "Hello, " + name;

}

程序跑起来后,控制台将会输出:Hello, Joydip!

 C#开发入门到精通之在 C#9 中使用程序 (Top-Level)

 

 

顶级程序中的类

你也可以在顶级程序中使用类,结构体,枚举,下面的代码展示了如何使用。

 

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#开发入门到精通之在 C#9 中使用程序 (Top-Level)

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程