背景在以前的C#版本里面,如果需要定义一个不可修改的的类型的做法一般是:声明为readonly,并设置为只包
转载
2021-11-24 15:29:27
77阅读
引用类型 提供合成方法来提供值语义,从而实现相等性。默认情况下,记录是不可变的。 记录类型可以轻松创建不可变的引用类型。以前.net类型主要分为引用类型(包括类和匿名类型)和值类型(包括结构和元组)。虽然建议使用不可变的值类型,但可变的值类型通常不会引入错误。值类型变量可保存值,因此在将值类型传递给方法时,会
原创
2022-07-03 00:25:30
152阅读
自C#7.0以来,模式匹配就作为C#的一项重要的新特性在不断地演化,这个借鉴于其小弟F#的函数式编程的概念,使得C#的本领越来越多,C#9.0就对模式匹配这一功能做了进一步的增强。为了更为深入和全面的了解模式匹配,在介绍C#9.0对模式匹配增强部分之前,我对模式匹配整体做一个回顾。1 模式匹配介绍1.1 什么是模式匹配?在特定的上下文中,模式匹配是用于检查所给对象及属性是否满足所需模式(即是否符合
转载
2021-05-05 18:47:52
188阅读
2评论
在 .NET 5.0 的发布中,不仅统一了框架,微软还在C#9.0中推出了一些新特性。 本版本中,印象深刻的功能: Init-only setters (初始化设置器) Records (记录) Top-level statements (顶级语句) Pattern matching (模式匹配) ...
转载
2021-09-03 12:23:00
88阅读
2评论
1 背景与动机通常,如果只想用C#在控制台上打印一行“Hello World!”,这可不是Console.WriteLine("Hello World!");一条语句就可以搞定的,还涉及到其他必要基础代码(如定义类和入口函数Main),例如下面:using System;
class Program
{
static void Main()
{
Console.Wr
转载
2021-05-05 18:54:39
326阅读
2评论
一:背景1.讲故事好消息,.NET5.0终于在2020年6月10日发布了第五个预览版,眼尖的同学一定看到了在这个版本中终于支持了C#9.0,此处有掌声,太好了!!!.Net5官方链接可以看到目前的C#9还是预览版,实现了一部分新语法供开发者提前尝鲜,从github的roslyn仓库上可以看到目前准备实现17个新特性,现阶段已经实现了8个,其中的InProgress表示正在开发中。新特性预览2.安装
原创
2020-08-29 09:50:16
88阅读
一:背景1. 讲故事好消息,.NET 5.0 终于在2020年6月10日发布了第五个预览版,眼尖的同学一定看
转载
2021-09-14 14:41:07
33阅读
一:背景1. 讲故事好消息,.NET 5.0 终于在2020年6月10日发布了第五个预览版,眼尖的同学一定看到了在这个版本中终于支持了 C# 9.0,此处有掌声,太好了!!!.Net5官方链接可以看到目前的C#9还是预览版,实现了一部分新语法供开发者提前尝鲜,从github的roslyn仓库上可以看到目前准备实现 17个新特性,现阶段已经实现了8个,其中的 In Progress 表示正在开发中。
原创
2021-02-24 21:52:01
126阅读
一:背景1. 讲故事好消息,.NET 5.0 终于在2020年6月10日发布了第五个预览版,
原创
2023-04-18 13:00:36
95阅读
一:背景 1. 讲故事 上一篇跟大家聊到了Target-typed new 和 Lambda discard parameters,看博客园和公号里的阅读量都达到了新高,甚是欣慰,不管大家对新特性是多头还是空头,起码还是对它抱有一种极为关注的态度,所以我的这个系列还得跟,那就继续开撸吧,今天继续带来
转载
2020-08-05 12:59:00
122阅读
C# 9.0 正在成形,我想和大家分享一下我们对下一版本语言中添加的一些主要特性的想法。对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。就让我们一探究竟吧!一、仅初始化(init-only)属性对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和可读的格式来创建对象,并且特别适合于嵌套对象
原创
2021-05-03 20:37:01
154阅读
C# 9.0 正在成形,我想和大家分享一下我们对下一版本语言中添加的一些主要特性的想法。对于 C# 的每一个新版本,我们都在努力让常见的编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。就让我们一探究竟吧!一、仅初始化(init-only)属性对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和可读的格式来创建对象,并且特别适合于嵌套对
转载
2021-05-05 21:02:35
94阅读
2评论
翻译自 Mads Torgersen 2020年11月10日的博文《C# 9.0 on the record
转载
2021-11-30 17:47:52
69阅读
翻译自 Mads Torgersen 2020年5月20日的博文《Welcome to C# 9.0》,Ma
转载
2021-12-01 16:15:56
66阅读
C# 9.0 正式发布正式宣布:C# 9.0 发布了!早在5月,我就写了一篇关于 C# 9.0 计划的博文 [2],以下是该帖子的更新版本,以匹配我们最终实际交付的产品。对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。一、仅初始化属性对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和易读
原创
2021-05-03 20:32:03
109阅读
一:背景1. 讲故事上一篇跟大家聊到了Target-typed new 和 Lambda discard paramet
原创
2023-04-18 12:54:45
75阅读
一:背景 1. 讲故事 上一篇跟大家聊到了Target-typed new 和 Lambda discard parameters,看博客园和公号里的阅读量都达到了新高,甚是欣慰,不管大家对新特性是多头还是空头,起码还是对它抱有一种极为关注的态度,所以我的这个系列还得跟,那就继续开撸吧,今天继续带来
原创
2021-09-05 10:27:09
53阅读
一:背景1.讲故事上一篇跟大家聊到了Target-typednew和Lambdadiscardparameters,看博客园和公号里的阅读量都达到了新高,甚是欣慰,不管大家对新特性是多头还是空头,起码还是对它抱有一种极为关注的态度,所以我的这个系列还得跟,那就继续开撸吧,今天继续带来两个新特性,更多新特性列表,请大家关注:新特性预览二:新特性研究1.Nativeints从字面上看貌似是什么原生类型
原创
2020-08-28 22:11:13
297阅读
一:背景1. 讲故事上一篇跟大家聊到了Target-typed new 和 Lambda discard parameters,看博客园和公号里的阅读量都达到了新高,甚是欣慰,不管大家对新特性是多头还是空头,起码还是对它抱有一种极为关注的态度,所以我的这个系列还得跟,那就继续开撸吧,今天继续带来两个新特性,更多新特性列表,请大家关注:新特性预览二:新特性研究1. Native ints从字面上看貌
原创
2021-02-24 21:51:43
137阅读
翻译自 Mads Torgersen 2020年11月10日的博文《C# 9.0 on the record
转载
2021-09-14 11:51:12
120阅读