C# Record Struct 值类型数据模型
学习C# record struct,创建具有值语义和不可变性的轻量级类型 · 难度:入门 · +15XP
Record Struct 概述
C# 10 引入的 record struct 结合了结构体的值类型特性和 record 的值相等性。它默认是可变的,但可以声明为 readonly record struct 实现不可变性。
语法
public readonly record struct Point(int X, int Y);
public record struct MutablePoint(int X, int Y);与 class record 对比
| 特性 | record struct | record class |
|---|---|---|
| 类型 | 值类型 | 引用类型 |
| 堆分配 | 通常栈上 | 堆上 |
| 默认可变性 | 可变 | 不可变 |
| 性能 | 更高效 | 适合大对象 |
示例
var p1 = new Point(1, 2);
var p2 = new Point(1, 2);
Console.WriteLine(p1 == p2); // True
var mp = new MutablePoint(1, 2);
mp.X = 10; // 可变
💡 练习提示:创建一个 readonly record struct 表示二维向量,实现加法运算符重载。