`field` 컨텍스트 키워드 — 속성 지원 필드에 접근하기

field 컨텍스트 키워드 — 속성 지원 필드에 접근하기

C# 14부터 도입된 컨텍스트 키워드 field는 속성 접근자 안에서 **컴파일러가 합성한 지원 필드(backing field)**에 직접 접근하게 해 줘요. 이 문법을 쓰면 get 또는 set 접근자의 본문은 직접 정의하되, 나머지 접근자는 자동 구현 속성에서처럼 컴파일러가 알아서 만들어 줘요.

출처: field 컨텍스트 키워드 문서

본문

자동 구현 속성에 범위 검사 같은 기능을 덧붙일 때, 이 field 키워드가 아주 매끄러운 길을 열어줘요. 다음 예시를 함께 볼게요.

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Hours 속성을 처음에는 그냥 자동 구현 속성으로 만들었다고 생각해 볼게요. 그런데 나중에 음수 값은 막고 싶다는 걸 발견하게 되죠. 이럴 때 field를 쓰면 set 접근자 안에서 범위 검사를 넣을 수 있어요. 백킹 필드를 손으로 선언하거나 get 접근자에 본문을 줄 필요가 없어요.

더 알아보기