이번 포스팅에서는 프로퍼티가 무엇이고, 사용법 및 사용 이유에 대해 알아 보겠습니다.
우리가 코딩을 하다보면 클래스내 private으로 지정된 필드값을 외부에서 변경하고 싶을 때가 있습니다.
이때는 public으로 지정된 함수를 통해 private값에 접근하면 된다고 이전 포스팅에서 알아보았죠.
예시를 통해 복습을 해볼까요?
class Car
{
private string name;
public string GetName()
{
return name;
}
public void SetName(string name)
{
this.name = name;
}
}
위 클래스는 public 으로 구성된 GetName, SetName 메소드을 가지고 있습니다.
즉, 이 메소드들을 이용해 private 필드값을 접근을 할것인데요.
이름에서도 알수 있듯 GetName은 외부에서 해당 필드값(여기선 name)을 불러오는 코드이고, SetName은 해당 필드값을 새로 지정 하는 코드입니다.
(this 개념을 모르시는분은 해당 포스팅 참조)
1. 프로퍼티(property) 사용 이유
문제는 이러한 형식의 코드가 너무나도 빈번하게 사용 된다는 것입니다.
바로 이것이 프러퍼티가 등장하게 된 이유입니다.
프러퍼티는 이러한 형식의 코드를 더욱 간결하게 만들어줍니다.
2. 프로퍼티(property) 생김새
앞서 구현한 코드를 프러퍼티로 구현해보면 아래와 같습니다.
get 블럭안은 해당 필드값을 읽는코드이고,
set 블럭안은 해당 필드값을 새로 지정할때 실행 되는 부분입니다.
새로운 값을 지정할때는 value라는 키워드를 사용하는데, 마치 매개변수처럼 사용됩니다.
다시말해 value위치에 우리가 새로 지정한 값이 위치하게 됩니다.
프러퍼티 생김새를 보면 함수같이 생겼으면서도, 그냥 변수 같기도한 특이한 생김새이죠?
실제로 두가지의 속성이 다 묻어나오는 특이한 친구입니다.
함수적인 특징
블럭 내에서 위와 같이 조건을 넣으면서 마치 함수같이 활용이 가능합니다.
변수같은 특징
프러퍼티를 사용하기전에 우리가 private값을 불러오기 위해선 아래와 같이 적어줘야 했습니다.
하지만 프러퍼티를 사용하면, 마치 변수 같이 사용이 가능합니다.
3 프러퍼티(property) 단축키
프러퍼티는 prop을 입력하고 tab 2번을 누르면 아래와 같이 자동으로 완성이 됩니다.
'c#' 카테고리의 다른 글
[c#] 업 캐스팅이란? (0) | 2022.05.12 |
---|---|
[c#] private set 사용 이유?(프러퍼티) (0) | 2022.05.11 |
[c#] 델리게이트(delegate) 개념 | += , -= (2) | 2022.05.10 |
[c# 기초] 코드 동작 시간 측정 (with Stopwatch) (0) | 2022.05.09 |
[c# 기초] StringBuilder 사용 이유? (0) | 2022.05.09 |
댓글