C# 9.0新特性详解系列之五:记录(record)和with表达式
1 背景与动机传统面向对象编程的核心思想是一个对象有着唯一标识,表现为对象引用,封装着随时可变的属性状态,如果你改变了一个属性的状态,这个对象还是原来那个对象,就是对象引用没有因为状态的改变而改变,也就是说该对象可以有很多种状态。C#从最初开始也是一直这样设计和工作的。但是一些时候,你可能非常需要一种恰好相反的方式,例如我需要一个对象只有一个状态,那么原来那种默认方式往往会成为阻力,使得事情变得费时费力。当一个类型的对象在创建时被指定状态后,就不会再变化的对象,我们称之为不可变类型。这种类型是线