C#객체지향

record 기본

값 비교 중심의 불변 데이터 모델을 만들 때 유용한 C# record의 기본 문법과 장점을 정리합니다.

마지막 수정 2026년 3월 16일

기본 패턴

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라도 완전히 불변이 되는 것은 아닙니다.