Wanna be Brilliant Full-Stack Developer
C# WinForms get,set 사용법 04/05 본문
캡슐화에 대한 먼저 기본적인 이해가 필요하다!
캡슐화는 정보 은닉을 위해 클래스에서 선언된 변수가 외부에서 접근이 안되도록
public이 아닌 private로 선언하여 외부에서 접근을 불가능하게 합니다.
- 프로퍼티는 get과 set을 사용하여 private로 선언된 변수에 접근이 가능하도록 합니다.
정보 은닉을 위해서 public가 아닌 private로 선언을 했는데, get과 set으로 변수를 접근할 수 있으므로 별 차이가 없어보입니다.
그럼에도 불구하고 프로퍼티를 사용하는 이유는 변수의 값을 변경하거나 가져올 때, 조건을 걸어서 변수의 접근을 제어할 수 있기 때문입니다.
class Person {
private string age; //field
public string Age // property
{
get { return age;}
set { age = value;}
}
}
변수 age가 private로 선언이 되어있으므로 외부에서 접근을 불가능하지만, Age라는 프로퍼티로 접근 가능합니다.
프로퍼티는 필드와 동일한 이름으로 하되 첫 글자는 대문자로 사용하는 것이 일반적입니다.
get 접근자는 필드 값을 반환합니다.
set 접근자는 필드 값을 대입합니다.
get 접근자가 없는데, get 접근자를 호출하거나
set 접근자가 없는데, set 접근자를 호출하는 경우 컴파일 에러가 발생합니다
C#에서 프로퍼티라는 기능을 사용하는 이유는 private 선언을 통해서 변수의 은닉성을 유지하면서도
값을 수정하거나 불러오는 편의성을 확보할 수 있다.
프로퍼티에서 get{ } . set{}은 접근자라고 한다.
get 접근자는 필드로부터 값을 읽어오고, set접근자는 필드에 값을 할당한다.
set 접근자에 value는 컴파일러가 자동으로 매개변수로 간주한다.
위와같이 프로퍼티로 코드를 작성하면,
myField가 private로 선언되었음에도
데이터를 다른 곳에서 불러오거나 변경할 수 있게 된다.
만약, set접근자를 아예 생략해버린다면
읽기전용 프로퍼티로 만들수도 있다.
자동구현프로퍼티는 추가적인 선언 없이 그저 get과 set을 적어주기만 하면 된다.
그리고 이렇게 선언함과 동시에 초기화도 한번에 수행할 수가 있다.
따라서, 초기값이 필요한 경우에도 간단하게 작성할 수가 있다.
'Some Memos > C#' 카테고리의 다른 글
C# WinForms 조건문(if else, switch) (0) | 2023.04.06 |
---|---|
C# Winforms 배열(Array) (0) | 2023.04.06 |
C# WINFORMS 주석의 중요성 (0) | 2023.04.05 |
C# Winforms Enum ( 열거형) (0) | 2023.04.05 |
C# WinForm 메모 (0) | 2023.03.30 |