객체 지향 C#

C#의 레코드와 값 기반 비교

이 레슨에서는 레코드로 불변 데이터를 간결하게 표현하고, with 식으로 일부를 바꾼 복사본을 만듭니다.

소개

레코드(record)는 주로 데이터를 담는 객체를 위해 설계된 타입입니다. 선언 한 줄만으로 생성자, 읽기 전용 속성, 깔끔한 출력 형식을 갖춥니다. 무엇보다 두 레코드는 담고 있는 값이 같으면 같다고 판단합니다.

record User(string Name, string Role) 줄은 Name과 Role 두 속성을 가진 타입을 만듭니다. 식 original with { Role = "Lead" }는 Role만 바뀐 복사본을 만들고, original은 Developer를 그대로 유지합니다. 출력할 때 레코드는 User { Name = Ada, Role = Lead } 형식으로 내용을 자동으로 보여 줍니다.

실행 가능한 C# 예제

C#
코드 실행 →
Program.cs
using System;

record User(string Name, string Role);

class Program
{
    static void Main()
    {
        var original = new User("Ada", "Developer");
        var promoted = original with { Role = "Lead" };
        Console.WriteLine(promoted);
    }
}
실행 결과
User { Name = Ada, Role = Lead }

디버거로 연습하기

중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.

챌린지로 연습하기

이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.

모든 챌린지