[C#] 속성 : 겟터와 셋터(get, set)키워드 알아보자
일반적으로 클래스를 만들 때 캡슐화를 위해서 private속성을 지정하여 클래스 밖에선 값을 수정할 수 없게 만듭니다. 하지만 필요로 인해서 값을 수정해야 하는데 수정하지 못한다면 어떻게 될까요?
그래서 보통 클래스에서는 get과 set함수를 따로 만들어서 값을 수정하거나 가져올 수 있게 하는데요. C#에서는 따로 함수를 만들지 않아도 get과 set을 사용할 수 있는 방법이 마련되어있습니다. 바로 속성을 이용하는 방법입니다.
속성으로 getter setter 만들기
바로 위와 같은 클래스가 있다고 쳐 봅시다. 폰넘버라는 변수를 프리빗으로 지정해준 뒤 그 바로 밑에 빨간 네모칸 영역이 바로 속성영역입니다. 위와 같이 속성을 지정해 주시면 되겠습니다. 속성이름은 알기쉽게 변수명앞글자를 그냥 대문자로 바꿔줬습니다. (또 암묵적인 약속으로 속성명 첫 글자는 대문자로 해주어여 합니다.)
get 부분에서는 값을 반환해주어야 하기 때문에 return을 사용해 줍니다. 또 set에서는 값을 설정해야 하므로 인자를 받아오는때 이 때 매개변수 역할 을 하는 것이 value라고 합니다. 위와같이 조건식을 사용해도 상관없습니다.
위 코드는 속성을 사용하는 간단한 예입니다. 속성을 사용할 때 보면 변수와는 다르게 스패너같은 아이콘이라는 것을 확인 할 수 있습니다. 저런 스패너아이콘이 뜬다면 속성을 뜻하는 것 입니다.
C# prop, propfull 코드조각 단축키 사용하기
간단한 코드 구현을 위해서는 코드조각을 이용해서 속성을 빠르게 입력할 수 있습니다. 코드조각이란 개발자가 코딩을 좀 더 쉽게 할 수 있도록 미리 코드를 조각으로 만들어 둔 것인데 속성에서 사용하는 코드조각은 이렇습니다.
위와 같은형식으로도 속성을 지정할 수 있습니다. 위에 있는 단축키를 통해서 쉽게 코드를 불러올 수 있죠. prop를 사용하는 첫 번째 코드는 보통 본인이 사용하기 싫어도 시스템상에서 보안 등의 사항으로 get과 set을 사용할 것을 권장하게되면 사용할 수 있는 코드라고합니다.
이런 신비한 기능이 있다니 정말 신기하죠? 이번 글에서 게터와 세터에 대한 이해를 확실히 하고 넘어가시기 바랍니다. 이헤하지 못한 부분이 있다면 덧글남겨주세요. 제가 아는 한도 내로 설명해드리도록 하겠습니다.
super C#
'C#(.NET)' 카테고리의 다른 글
[c#] foreach 반목문 갖다뽀개버리기 (8) | 2017.10.20 |
---|---|
[오류해결] 코드 경로 중 일부만 값을 반환합니다. (1) | 2017.10.19 |
[C#] readonly 키워드를 알아보자 (0) | 2017.10.15 |
[C#] 인스턴스변수와 클래스변수 (6) | 2017.10.13 |
C# - var 키워드는 무엇인가 (초기화, 사용법) (13) | 2017.10.06 |