속성(C# 프로그래밍 가이드)

업데이트: 2007년 11월

속성은 전용 필드 값을 읽고 쓰거나 계산하기 위한 융통성 있는 메커니즘을 제공하는 멤버입니다. 속성은 공용 데이터 멤버인 것처럼 사용할 수 있지만 실제로는 접근자라는 특별한 메서드입니다. 이를 사용하면 메서드의 안전성과 유연성을 높이고 데이터에 쉽게 액세스할 수 있습니다.

이 예제에서 TimePeriod 클래스는 시간을 저장합니다. 내부적으로 이 클래스는 시간을 초 단위로 저장하지만 Hours라는 속성을 사용하면 클라이언트에서 이를 시간 단위로 지정할 수 있습니다. Hours 속성에 대한 접근자는 시간과 초 사이의 변환을 수행합니다.

예제

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}


class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
// Output: Time in hours: 24

속성 개요

  • 속성을 사용하면 클래스에서 코드 구현이나 확인 과정을 숨긴 채 값을 가져오고 설정하는 방식을 공개적으로 노출할 수 있습니다.

  • get 속성 접근자는 속성 값을 반환하는 데 사용되고, set 접근자는 새 값을 할당하는 데 사용됩니다. 이러한 접근자에는 서로 다른 액세스 수준이 설정될 수 있습니다. 자세한 내용은 비대칭 접근자 액세스 가능성(C# 프로그래밍 가이드)을 참조하십시오.

  • value 키워드는 set 인덱서로 할당되는 값을 정의하는 데 사용됩니다.

  • set 메서드를 구현하지 않는 속성은 읽기 전용입니다.

  • 사용자 지정 접근자 코드가 필요하지 않은 간단한 속성의 경우 자동으로 구현된 속성을 사용하는 것이 좋습니다. 자세한 내용은 자동으로 구현된 속성(C# 프로그래밍 가이드)을 참조하십시오.

관련 단원

C# 언어 사양

자세한 내용은 C# 언어 사양의 다음 단원을 참조하십시오.

  • 1.6.7.2 속성

  • 10.2.9.1 속성에 예약된 멤버 이름

  • 10.7 속성

참고 항목

개념

C# 프로그래밍 가이드

속성 디자인

참조

속성 사용(C# 프로그래밍 가이드)

인덱서(C# 프로그래밍 가이드)