📚 목차
- 프로퍼티란?
- get, set 접근자
- 프로퍼티에 접근법(사용법)
🔍 프로퍼티란?
C#에서 클래스 내부의 필드를 외부에 안전하게 노출하기 위한 방법 중 하나가 바로 프로퍼티(Property)입니다.
class Player
{
private int hp;
}
위처럼 private 필드는 외부 접근이 불가능하므로 보통 다음과 같이 메소드를 통해 접근합니다.
class Player
{
private int hp;
public int GetHp() { return hp; }
public void SetHp(int hp) { this.hp = hp; }
}
하지만 필드가 많아질수록 코드가 복잡해지고 가독성이 떨어지게 됩니다. 이 문제를 해결하기 위해 C#에서는 프로퍼티 문법을 제공합니다.
class Player
{
public int Hp { get; set; }
}
이처럼 get
과 set
키워드를 사용해 간결하게 데이터를 읽고 쓸 수 있습니다.
⚙️ get, set 접근자
get
은 값을 읽을 때, set
은 값을 쓸 때 사용됩니다.
즉,
get
접근자 → 읽기 전용set
접근자 → 쓰기 전용
둘 다 선언할 수도 있고, 둘 중 하나만 선언하여 읽기 전용 또는 쓰기 전용으로 사용할 수도 있습니다.
class Player
{
private int hp;
public int Hp
{
get { return hp; }
set { hp = value; }
}
}
value
는 set
접근자에서 자동으로 전달되는 파라미터입니다.
또한 프로퍼티 내부에서 조건문, 메서드 호출 등도 가능하며, 다음과 같은 특징이 있습니다.
get
은return
또는throw
로 종료되어야 함- 프로퍼티는 변수와 달리
ref
,out
매개변수로 사용할 수 없음 public
,static
,virtual
키워드와 함께 사용할 수 있음
🧪 프로퍼티에 접근법(사용법)
C# 7.0부터는 프로퍼티에 기본값을 지정하는 문법도 지원됩니다.
class Player
{
public int Hp { get; set; } = 10;
}
프로퍼티를 사용하는 방식은 다음과 같습니다.
Player player = new Player(); // 객체 생성
player.Hp = 100; // set 접근
int hp = player.Hp; // get 접근
마치 public 필드에 직접 접근하는 것처럼 간단하지만, 실제로는 get/set 접근자를 통해 안전하게 데이터를 처리합니다.
이처럼 프로퍼티를 사용하면 필드 보호와 간결한 코드 작성을 동시에 만족할 수 있습니다.
Reference - Rookiss님의 게임 개발 시리즈, Microsoft Learn
반응형
'C#' 카테고리의 다른 글
[C#] 인터페이스 (Interface) (0) | 2023.08.24 |
---|---|
[C#] 일반화 (Generic) (0) | 2023.08.23 |
싱글톤(Singleton) 패턴 (0) | 2023.08.23 |
댓글