다음을 통해 공유


get 키워드

get 키워드는 속성 값 또는 인덱서 요소를 반환하는 속성 또는 인덱서의 accessor 메서드를 정의합니다. 자세한 내용은 속성, 자동으로 구현된 속성인덱서참조하세요.

속성 getset 접근자가 프라이빗 지원 필드에서 값을 설정하거나 검색하는 것 외에 다른 작업을 수행하지 않는 간단한 경우 자동으로 구현된 속성에 대한 C# 컴파일러의 지원을 활용할 수 있습니다. 다음 예제에서는 Hours 자동으로 구현된 속성으로 구현합니다.

class TimePeriod3
{
    public double Hours { get; set; }
}

Important

인터페이스 속성 선언이나 부분 속성에 대한 구현 선언에는 자동으로 구현된 속성허용되지 않습니다. 컴파일러는 자동으로 구현된 속성과 일치하는 구문을 구현 선언이 아닌 선언 선언으로 해석합니다.

대체로 get 접근자는 앞의 예제와 마찬가지로 값을 반환하는 단일 문으로 구성됩니다. get 접근자를 식 본문 멤버로 구현할 수 있습니다. 다음 예제에서는 getset 접근자 둘 다를 식 본문 멤버로 구현합니다.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

접근자 본문 중 하나를 구현해야 할 수 있습니다. 필드 지원 속성을 사용하면 다른 접근자를 직접 작성하는 동안 컴파일러에서 하나의 접근자를 생성할 수 있습니다. C# 13에서 미리 보기 기능으로 추가된 키워드를 사용하여 field 컴파일러 합성 지원 필드에 액세스합니다.

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

Important

field 키워드는 C# 13의 미리 보기 기능입니다. 상황별 키워드를 사용하려면 .NET 9를 <LangVersion> 사용하고 preview 프로젝트 파일에서 요소를 설정 field 해야 합니다.

이름이 지정된 field필드가 field 있는 클래스에서 키워드 기능을 사용하는 데 주의해야 합니다. 새 field 키워드는 속성 접근자의 범위에 명명된 field 필드를 숨깁니다. 변수의 field 이름을 변경하거나 토큰을 사용하여 @ 식별자를 .로 field참조 @field 할 수 있습니다. 키워드field 기능 사양을 읽어 자세히 알아볼 수 있습니다.

다음 예제에서는 get라는 속성의 setSeconds 접근자를 둘 다 정의합니다. _seconds라는 private 필드를 사용하여 속성 값을 지원합니다.

class TimePeriod
{
    private double _seconds;

    public double Seconds
    {
        get { return _seconds; }
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
            }
            _seconds = value;
        }
    }
}

C# 언어 사양

자세한 내용은 C# 언어 사양을 참조하세요. 언어 사양은 C# 구문 및 사용법에 대 한 신뢰할 수 있는 소스 됩니다.

참고 항목