记录类型与不可变性
00:00
C#记录类型(record)与不可变性详解。
1. record 基本用法
public record Person(string Name, int Age);
var p1 = new Person("Alice", 30);
var p2 = new Person("Alice", 30);
p1 == p2; // true(值相等)
p1 with { Age = 31 }; // 创建副本并修改
2. record struct
public record struct Point(double X, double Y);
3. 自定义 record
public record User {
public string Name { get; init; }
public string Email { get; init; }
public User(string name, string email) => (Name, Email) = (name, email);
}
4. 不可变性优势
- 线程安全
- 无副作用
- 易于推理
- 适合函数式编程
5. with 表达式
var original = new Person("Alice", 30);
var modified = original with { Age = 31 };
// original 不变,modified 是新对象