C#9.0主要特性的一些想法
翻译自 Mads Torgersen 2020年5月20日的博文《Welcome to C# 9.0》,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团队的项目群经理。这次特别关注的是支持数据模型的简洁和不可变表示。对象初始化器非常棒。目前最大的限制是属性必须是可变的,对象初始化器才能工作:它们首先调用对象的构造函数,然后赋值给属性 setter。仅初始化属性解决了这个问题!它引入了一个 init 访问器,它是 set 访问器的变体,只能在对象初始化时调用:有了这个声明,上面的客户端代码仍然是合法的,但是随后对 FirstName 和 LastName 属性的任何赋值都是错误的。因为 init 访问器只能在初始化期间调用,所以允许它们更改封闭类的只读字段,就像在构造函数中一样。
用户评论