반응형

C# : 프로퍼티(property)

프로그래밍 언어에서 클래스가 등장한 이후, 코딩을 하다보면 항상 반복적으로 작성되는 메서드(C/C++ 계열에서는 함수)를 간편하게 작성하기 위한 문법을 제공한다. 그중 프로퍼티는 set/get에 대해서 간단하게 정의를 해주는 문법이다.


프로퍼티 문법 예시

class Property
{
    int tmp;

    public int tmp
    {
        get { return tmp; }
        set { tmp = value; }
    }
    // ...
}

Property ppy = new Property();
ppy.tmp = 5;        // 쓰기
int a = ppy.tmp;   // 읽기

예시에서 사용된 set의 value 는 C# 언어상 제공되는 예약어다. 또한 읽기만 가능한 멤버 변수로 만들 수도 있다.


예시의 컴파일러 결과

class Property
{
    int tmp;

    public void setTmp(int value)
    {
        this.tmp = value;
    }

    public int getTmp()
    {
        return this.tmp;
    }
    // ...
}

Property ppy = new Property();
ppy.setTmp(5);    // 쓰기
int a = ppy.getTmp()    // 읽기

위의 추가 예제처럼 실제로는 C/C++에서 흔히 볼 수 있는 형태로 변환이 된다. 즉, 프로퍼티는 코딩수를 줄이고, 직관적으로 알 수 있게 해주는 도와주는 형태의 문법이다.



(5.0 부터 지원되는) 프로퍼티 간략화

이전 버전방식이 유효한 상태에서 어차피 value값이 정해져 있는 경우에는 아예 키워드 get, set 만으로도 유효하다.

예시)

class Property
{
    int tmp;

    public int tmp
    {
        get;
        set;
    }
    // ...
}




반응형

+ Recent posts