기본 패턴
csharp
public record User(string Name, int Level);
User first = new User("Mina", 5);
User second = first with { Level = 6 };설명
- record는 데이터 전달용 타입을 간결하게 만들 때 적합합니다.
- 내용이 같으면 같은 값으로 비교되는 value equality를 기본으로 지원합니다.
with표현식으로 기존 값을 복사하면서 일부만 바꿀 수 있습니다.
짧은 예제
csharp
User origin = new("Rin", 3);
User updated = origin with { Name = "Rina" };빠른 정리
| 항목 | 설명 |
|---|---|
record | 값 중심 비교 타입 |
with | 일부 속성만 바꾼 복사본 생성 |
| primary constructor | 선언과 필드 정의를 함께 압축 |
주의할 점
내부에 List 같은 변경 가능한 참조 타입이 들어 있으면 record라도 완전히 불변이 되는 것은 아닙니다.