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”,以此类推除此之外,他们的姓氏也将“暂不公开”。
这里的任何东西都用下划线(_)表示,我相信这在所有语言的模式匹配中都是相当标准的
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容