C#에서 속성(Property)은 필드(Field)의 확장 개념으로, 필드와 동일한 문법으로 접근할 수 있습니다. 속성은 접근자(Accessor)를 사용하여 클래스 내부의 private 필드 값을 읽거나(get), 쓰거나(set), 조작할 수 있도록 해줍니다.
속성 접근자의 역할
속성의 접근자에는 실행 가능한 코드 블록이 포함되어 있습니다. 접근자는 크게 두 가지로 나뉩니다.
- get 접근자: 필드의 값을 읽거나 계산하여 반환합니다.
- set 접근자: 필드에 새로운 값을 할당(쓰기)합니다.
이러한 구조 덕분에 외부에서는 마치 일반 변수처럼 속성에 접근하면서도, 내부적으로는 유효성 검사나 추가 로직을 수행할 수 있다는 장점이 있습니다.
C# 속성 예제
먼저 string 타입의 Code 속성을 선언해 보겠습니다.
public string Code {
get {
return code;
}
set {
code = value;
}
}get 접근자는 code 필드의 값을 반환하고, set 접근자는 키워드 value를 통해 전달된 값을 code 필드에 저장합니다.
같은 방식으로 int 타입의 Age 속성도 다음과 같이 선언할 수 있습니다.
public int Age {
get {
return age;
}
set {
age = value;
}
}정리
C#의 속성 접근자는 캡슐화(Encapsulation)를 구현하는 핵심 문법입니다. private 필드를 직접 노출하지 않으면서도 안전하게 값을 읽고 쓸 수 있게 해주며, 필요에 따라 get이나 set 중 하나만 정의하여 읽기 전용 또는 쓰기 전용 속성을 만들 수도 있습니다.