1.简述:

        我们都知道,C#作为大型协作工业级编程语言,在编写简单应用的时候可能产生的入口代码比实际的需求代码还多的尴尬现象,这些入口代码在老袁的眼中显得非常碍眼。有没有像其它编程语言特别是脚本语言能快速编写简单可用的程序的可能呢?答案当然是有的,C# 9.0增加了顶级语句功能,从 C# 9 开始,无需在控制台应用程序项目中显式包含 Main 方法。 相反,可以使用顶级语句功能最大程度地减少必须编写的代码。 在这种情况下,编译器将为应用程序生成类和 Main 方法入口点。

        借助顶级语句,可以为小实用程序编写简单的程序。 它们还使初次接触 C# 的程序员能够更轻松地开始学习和编写代码。

2.语法要求:

  • 顶级语句只能在主入口Main方法处使用。因为一个应用程序只能有一个入口点。 一个项目只能有一个包含顶级语句的文件。
  • 如果包含 using 指令,则它们必须首先出现在文件中。
  • 顶级语句可以引用 args 变量来访问输入的任何命令行参数。 args 变量永远不会为 null,但如果未提供任何命令行参数,则其 Length 将为零。
  • 具有顶级语句的文件还可以包含命名空间和类型定义,但它们必须位于顶级语句之后。
  • 在顶级语句中,可以使用await,这样编译器会自动生成异步程序入口方法。
  • 顶级语句也可以返回int值,编译器会自动生成带返回值的程序入口方法。 
顶级代码包含 隐式 Main 签名
await 和 return static async Task<int> Main(string[] args)
await static async Task Main(string[] args)
return static int Main(string[] args)
无 await 或 return static void Main(string[] args)
posted @ 2023-08-15 22:19 夜店耍流氓 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1.前言 在开发网站登录,安全验证等方面的时候,我们经常会使用到验证码,以前我们制作验证码的时候,一般都会写大量的代码完成验证码的制作。有没有现成,又好用的验证码工具插件呢?当然是有的,这里就介绍一个开源又好用的验证码工具LazyCaptcha。 2. LazyCaptcha介绍 LazyCaptc 阅读全文
posted @ 2023-07-28 15:48 夜店耍流氓 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 1.前言 在开发中,我们经常用到对象之间的映射。谈到对象映射器,我们比较熟知的肯定是AutoMapper,但很少人会知道Mapster。今天在这里我们一起探讨一下什么是Mapster?为什么有了AutoMapper映射器了,还要学习使用Mapster? 2.什么是Mapster? Mapster是一 阅读全文
posted @ 2023-07-10 23:36 夜店耍流氓 阅读(1915) 评论(1) 推荐(3) 编辑
摘要: SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。 产生背景: 随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。 SM2算法和RSA算法都是公钥密码算法,SM2算法是一种 阅读全文
posted @ 2023-06-05 13:06 夜店耍流氓 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 第一步:首先引入命名空间 using System.Globalization; 第二步:编写获取方法 public string GetChineseZodiac(DateTime time){ ChineseLunisolarCalendar chineseLunisolarCalendar = 阅读全文
posted @ 2023-05-24 21:15 夜店耍流氓 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 在C#中,类是功能最为强大的数据类型,类定义了数据类型的数据和行为。一下示例代码是在创建Person类中使用void定义一个无返回值类型的CheckName方法: public class Person { public string name; //定义类成员 public void CheckN 阅读全文
posted @ 2023-05-10 12:07 夜店耍流氓 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 1.ref关键字 我们知道C#语言的数据类型分为值类型和引用类型,其中它们最典型的差别就是在作为方法的参数方面。值类型数据作为参数,修改形参时不会影响到实参;而引用类型数据作为参数,修改形参可以影响到实参。 但是某些情况下,传递的是值类型数据,却要求把修改的结果带回来,像引用类型作为参数那样的效果, 阅读全文
posted @ 2023-05-10 10:34 夜店耍流氓 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Random类表示伪随机数生成器,它是一种能够产生满足某些随机性统计要求的数字序列的设备,其方法如下表: Random类方法 方 法 说 明 Next 已重载。返回随机数 NextBytes 用随机数填充指定字节数组的元素 NextDouble 返回一个介于0.0和1.0之间的随机数 Sample 阅读全文
posted @ 2023-05-09 14:14 夜店耍流氓 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 续: C#中判断字段是否为空或者Null的时候,我们一般会使用IsNullOrEmpty()和IsNullOrWhiteSpace()方法,这两个方法在大部分情况下判断的结果是一致的,但是有些情况下是不一致的。 正文: 看看如下代码执行情况 使用IsNullOrEmpty()方法: string.I 阅读全文
posted @ 2023-04-13 14:45 夜店耍流氓 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 1. Base64加密 public static string Encrypt(string clearText) { byte[] bytes = Encoding.UTF8.GetBytes(clearText); return Convert.ToBase64String(bytes); } 阅读全文
posted @ 2023-04-13 14:19 夜店耍流氓 阅读(265) 评论(0) 推荐(0) 编辑


点击右上角即可分享
微信分享提示