본문 바로가기
C#

[C#] 프로퍼티 (Property) get, set

by GGolDDuKi 2023. 8. 30.
📚 목차
  1. 프로퍼티란?
  2. get, set 접근자
  3. 프로퍼티에 접근법(사용법)

🔍 프로퍼티란?

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; } }

이처럼 getset 키워드를 사용해 간결하게 데이터를 읽고 쓸 수 있습니다.


⚙️ get, set 접근자

get은 값을 읽을 때, set은 값을 쓸 때 사용됩니다.

즉,

  • get 접근자 → 읽기 전용
  • set 접근자 → 쓰기 전용

둘 다 선언할 수도 있고, 둘 중 하나만 선언하여 읽기 전용 또는 쓰기 전용으로 사용할 수도 있습니다.

class Player { ​​​​private int hp; ​​​​public int Hp ​​​​{ ​​​​​​​​get { return hp; } ​​​​​​​​set { hp = value; } ​​​​} }

valueset 접근자에서 자동으로 전달되는 파라미터입니다.

또한 프로퍼티 내부에서 조건문, 메서드 호출 등도 가능하며, 다음과 같은 특징이 있습니다.

  • getreturn 또는 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

댓글