안녕하세요 삽잡이입니다.
이번 시간에는 C#에서 제공해주는 Property에 대해서 알아보도록 하겠습니다.
C#에서는 Property라는 '속성' 기능을 제공해줍니다.
이 속성은 Getter, Setter의 축약적 메서드입니다.
Property는 이렇게 만들 수 있습니다.
int X, int Y...
즉, 이 property를 구조체, 클래스의 속성이라고 부릅니다.
이 속성을 가지고 무엇을 할 수 있느냐...
이 놈은 메서드도, 필드도 아닙니다.
컴파일러가 내부적으로 GetX(), SetY() 와 같은 메서드를 만들어주지요...
GetX()는 x 필드값을 반환,
SetX() 메서드는 클라이언트로 부터 받아온 값을 필드 x에 저장을 시켜줍니다.
이 속성으로부터 만들어진 Getter, Setter의 타입은 필드의 타입과 같습니다.
IL DASM이라는 Visual Studio에서 제공하는 Tool이 있습니다.
해당 도구는 디스어셈블링을 해주는 프로그램입니다.
즉, .exe 파일을 열고 내용물을 볼 수 있게 해줍니다.
이 도구를 통해서 Getter와 Setter가 만들어지는 것을 확인할 수 있습니다.
이 처럼 내부적으로 Getter와 Setter에 대한 메서드를
컴파일러가 만들어주는 것을 확인할 수 있습니다.
속성을 가져다 쓰면 컴파일러가 메서드로 자동 생성을 해주는 것을 확인했습니다.
우리는 이를 속성이라는 기능을 통해 쉽게 가져다 쓸 뿐입니다.
속성을 사용하면 굉장히 편합니다.
예를 들어 속성 하나만을 사용해서 쉽게 필드 값을 변경할 수도 있습니다.
음... 필드 값을 Get() 메서드를 통해 얻어와서
증감을 시키고 다시 Set() 메서드를 통해 Set을 할 수 있지요...
또 '자동 속성'이라는 속성이 있습니다.
이는 필드를 일반적으로 쓰지 않는 속성을 말합니다.
내부적으로 속성의 Get, Set 하려는 필드를 만들어주는 것입니다.
자동 속성은 컴파일러가 자동으로 필드를 만들어주기때문에
생성자의 경우에도 즉, 내 클래스 안에서도 모르기 때문에 속성을 사용할 수 있습니다.
아무튼... 컴파일러가 자동으로 만들어준 필드를 사용하는 속성을
우리는 '자동 속성'이라고 부릅니다.
또한... 속성이 여러개 필요하다면...
자동 속성 초기화라는 것이 있는데... 이것은 패스하겠습니다...
그러면 이번시간은 여기까지 알아보도록 하겠습니다.
이상 삽잡이였습니다!
'삽질의 현장 > - .NET' 카테고리의 다른 글
#023_닷넷(.NET)_.Net Framework 기본 - ToString() 오버라이드 (0) | 2015.10.24 |
---|---|
#022_닷넷(.NET)_.Net Framework 기본 - 참조 타입과 값 타입에 대하여 (0) | 2015.10.24 |
#020_닷넷(.NET)_.Net Framework 기본 - 실제 참조 타입 과 값 타입 (0) | 2015.10.24 |
#019_닷넷(.NET)_.Net Framework 기본 - 참조 타입 과 값 타입의 의미 (0) | 2015.10.24 |
#018_닷넷(.NET)_.Net Framework 기본 - Type에 대한 내용 (0) | 2015.10.24 |