C# 9 Records were reference types (classes). C# 10 introduces `record struct`, bringing immutability features to value types, eliminating heap allocations for small DTOs.
Syntax
public readonly record struct Point(int X, int Y);
var p1 = new Point(1, 2);
var p2 = p1 with { X = 5 }; // Non-destructive mutation
Performance Benefit
Since it’s a struct, `Point` lives on the stack. No GC pressure for creating thousands of them in a loop.
Key Takeaways
- Use `readonly record struct` for small, immutable DTOs (< 64 bytes).
- Use `record class` (or just `record`) for larger objects or when identity matters.
Discover more from C4: Container, Code, Cloud & Context
Subscribe to get the latest posts sent to your email.