CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

C#8.0(一看就会)c#9.0新特性,C# 8.0的五大特性,

1.C# 8.0

C# 8.0与.NET Core 3.0一起发布,这两个版本在.NET Conf 2019中同时发布。作为C# 8.0的一部分,有很多新特性发布了,这里我挑出了前五名。

2.C# 9.0

只读成员(Readonly members)我们已经使用readonly变量很长一段时间了,有以下的一些优点:类或结构不可变对象在默认情况下是线程安全的状态不能被修改,这意味着与哪个线程使用对象无关现在我们可以对结构体的任何成员应用readonly修饰符,这对于struct来说意义重大,因为它是一个值类型。

3.C# 8.0核心技术指南 pdf

使用(Usage)publicstruct Employee {       publicstring FirstName {           readonlyget;           set;       }       

4.c# 7.0

publicstring SecondName {           readonlyget;           set;       }       publicreadonlystring Name => $ 

5.c#8.0高级编程

“{FirstName} {SecondName}”;   }   使用声明(Using Declaration)使用声明有一个很酷的快捷方式,因为它消除了使用花括号的代码块而不是这样写:publicvoid

6.C#5.0新增的几大新特性

GetEmployeeDetails(int employeeID) {       using(var conn = new SqlConnection(“connectionstring”)) {           

//code for retrieving the employee details.  //Connection will be disposed here as its internally a try- catch-finally block  

    }   }   现在我们可以这样写:publicvoidGetEmployeeDetails(int employeeID) {       usingvar conn = new SqlConnection(

“connectionstring”);       //code for retrieving the employee details.  //Connection will be disposed  

}  默认的接口方法(Default Interface Method)现在我们可以将默认方法添加到接口中其思想是,我们可以在以后使用默认实现向接口添加方法,这样现有的实现就不会失败我喜欢这个想法,但我不确定这个功能会有多有用,也不确定它会带来多少困惑,它是Scala等其他语言中的内联特征。

使用(Usage)//AsynEnumberable usage  publicstaticasync IAsyncEnumerable  GenerateRandomValues() {       Random rnd = 

new Random();       for (int i = 0; i < 20; i++) {           await Task.Delay(1000);           yieldreturn

 $ “A-{rnd.Next(1000)}”;       }   }  异步流(Asynchronous streams)在我看来,这是最令人兴奋的特性之一到目前为止,我们只返回IEnumerable,这很有用,因为我们可以在IEnumerable上编写LINQ查询。

现在我们可以异步地创建和使用流了使用(Usage)awaitforeach(var n inGenerateRandomValues()) {       Console.WriteLine($ “Random Value : {n}”

);   } 如下所示调用此方法,awaitforeach(var n inGenerateRandomValues()) {       Console.WriteLine($ “Random Value : {n}”

);   } 属性模式(Property Pattern)这绝对是我最喜欢的功能之一,能够匹配属性是无价的,语法也非常简单让我们看看下面的例子publicstatic string GetFamilyName(Employee employee) => employee   。

switch {       {           FirstName: “Prasad”       } => “Pulickal”, {           FirstName: “Pradeep”

       } => “Thekkeveli”, {           FirstName: “Praveen”       } => “PuthanMadam”,       _ => “Not Available”

   };  请看一下switch的语法,这里“switch”在变量地址后面在这个例子中,如果员工的名字是“Prasad”,那么他的姓就是“Pulickal”,以此类推除此之外,他们的姓氏也将“暂不公开”。

这里的任何东西都用下划线(_)表示,我相信这在所有语言的模式匹配中都是相当标准的

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容