C# 9.0有哪些关键特性,您有何见解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4594个文字,预计阅读时间需要19分钟。
前言+翻译自+Mads Torgersen 2020年5月20日的博文《Welcome to C#》
前言
翻译自 Mads Torgersen 2020年5月20日的博文《Welcome to C# 9.0》,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团队的项目群经理。
C# 9.0 正在成形,我想和大家分享一下我们对下一版本语言中添加的一些主要特性的想法。
对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。
就让我们一探究竟吧!
一、仅初始化(init-only)属性
对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和可读的格式来创建对象,并且特别适合于嵌套对象的创建,让你可以一次性创建整个对象树。这里有一个简单的例子:
new Person { FirstName = "Scott", LastName = "Hunter" }
对象初始化器还使类型作者不必编写大量的构造函数——他们所要做的就是编写一些属性!
public class Person { public string FirstName { get; set; } public string LastName { get; set; } }
目前最大的限制是属性必须是可变的(即可写的),对象初始化器才能工作:它们首先调用对象的构造函数(本例中是默认的无参数构造函数),然后赋值给属性 setter。
本文共计4594个文字,预计阅读时间需要19分钟。
前言+翻译自+Mads Torgersen 2020年5月20日的博文《Welcome to C#》
前言
翻译自 Mads Torgersen 2020年5月20日的博文《Welcome to C# 9.0》,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团队的项目群经理。
C# 9.0 正在成形,我想和大家分享一下我们对下一版本语言中添加的一些主要特性的想法。
对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。
就让我们一探究竟吧!
一、仅初始化(init-only)属性
对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和可读的格式来创建对象,并且特别适合于嵌套对象的创建,让你可以一次性创建整个对象树。这里有一个简单的例子:
new Person { FirstName = "Scott", LastName = "Hunter" }
对象初始化器还使类型作者不必编写大量的构造函数——他们所要做的就是编写一些属性!
public class Person { public string FirstName { get; set; } public string LastName { get; set; } }
目前最大的限制是属性必须是可变的(即可写的),对象初始化器才能工作:它们首先调用对象的构造函数(本例中是默认的无参数构造函数),然后赋值给属性 setter。

