C# 10 中的 record struct 是轻量级、不可变、值语义的结构类型,自动实现相等比较、ToString 等,需显式或隐式 readonly,不支持 with 表达式和继承,适用于小数据模型与高性能场景。

在 C# 10 中,record struct 是一种轻量级、不可变(默认)、值语义的结构类型,适合用于数据载体(如 DTO、返回值、配置项等),相比 class-based record 更省内存、避免堆分配,也比普通 struct 更易用(自动实现 Equals、GetHashCode、ToString 和 ==/!=)。
record struct 基本写法
语法和 record class 类似,但用 struct 关键字替代 class,且必须是 readonly(隐式或显式):
public readonly record struct Person(string Name, int Age);
登录后复制
这样就自动生成了:
- 只读字段
Name和Age - 位置构造函数(可直接传参初始化)
- 基于值的相等比较(
==/!=) - 重写的
Equals、GetHashCode、ToString - 解构支持(
var (name, age) = person;)
带命名字段和自定义成员的 record struct
你也可以显式声明字段、属性,甚至添加方法或自定义 ToString:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~