core 不可变类型 线程安全 record

当一个类型的对象在创建时被指定状态后,就不会再变化的对象,我们称之为不可变类型 。这种类型是线程安全的,不需要进行线程同步,非常适合并行计算的数据共享。它减少了更新对象会引起各种bug的风险,更为安全。
System.DateTime和string就是不可变类型非常经典的代表。

record 引用类型

资料
微软资料

们要用类来创建一个不可变类型,你首先要定义只读字段和属性,并且还要重写涉及相等判断的方法等。在C#9.0中,引入了record,专门用来以最简的方式创建不可变类型的新方式。如果你需要一个行为像值类型的引用类型,你可以使用record;如果你需要整个对象都是不可变的,且行为像一个值,那么你也可考虑将其声明为一个record类型。 那么什么是record类型?

相关推荐
神色自若10 天前
net9 aspose.cell 自定义公式AbstractCalculationEngine,带超链接excel转html后背景色丢失
net·aspose.cell
百锦再17 天前
SQLSugar 封装原理详解:从架构到核心模块的底层实现
sql·mysql·sqlserver·架构·core·sqlsugar·net
百锦再1 个月前
.NET 的 WebApi 项目必要可配置项都有哪些?
java·开发语言·c#·.net·core·net
汪小白JIY1 个月前
【Abp.VNext】Abp.Vnext框架模块学习
net·abp.vnext
百锦再2 个月前
WPF依赖属性深度解析:从原理到高级应用
wpf·依赖·绑定·验证·net·强制
尸僵打怪兽2 个月前
C#项目准备
c#·vs2022·net
liulilittle2 个月前
.NET ExpandoObject 技术原理解析
开发语言·网络·windows·c#·.net·net·动态编程
百锦再2 个月前
服务器间接口安全问题的全面分析
运维·服务器·安全·api·jwt·token·net
教练、我想打篮球3 个月前
63 网络交互的过程中目标设备的选择
linux·net·eth0
IT成长日记3 个月前
【Docker基础】Docker核心概念:命名空间(Namespace)之NET详解
运维·docker·容器·namespace·net