[C#] get,set 프로퍼티

자몽이·2025년 11월 19일

C# 문법

목록 보기
10/12
post-thumbnail

get set 프로퍼티에 대해 알아보자.



✅ 1. 프로퍼티란?

프로퍼티는 변수처럼 보이지만 내부적으로는 함수처럼 동작하는 문법이다.


✅ 2. 필드(Field)와 프로퍼티의 차이

필드는 실제 데이터를 저장

public int hp;

프로퍼티 (get/set을 이용한 값 관리)

private int _hp;
public int HP;
{
	get { return _hp; }
    set { _hp = value; } //value는 속성에 할당해주는 값.
}
  • _hp는 진짜 값이 들어가는 필드
  • HP는 외부에서 접근하는 창구 느낌이다


✅ 3. 읽기전용 프로퍼티

public Gold
{
	get { return _gold; }
}

이런식으로 set 없이 사용하여 Unity에서 상태 읽기에 자주 사용된다.



✅ 4. 자동구현 프로퍼티

  • 내부 필드를 만들기 귀찮거나, 당장엔 로직이 필요 없는 상황에서 쓰인다.
public int HP { get; set; }
  • 이렇게 작성했을 때, 컴파일러에서 자동으로
private int _hp;
public int HP
{
	get { return _hp; }
    set { _hp = value; }
}
  • 이런 필드를 내부적으로 생성해준다. 가장 많이 사용하는 형태이다.


✅ 5. get/set에 로직 추가하기

  • 프로퍼티는 값 저장만이 아니라 중간에 코드를 삽입할 수 있는 것이 큰 장점이다.
private int _hp;
public int HP
{
    get { return _hp; }
    set
    {
        _hp = Mathf.Clamp(value, 0, 100);
    }
}
  • 이처럼 조건을 걸거나, 확장성이 매우 용이하다.


✅ 6. 직렬화에 사용 (Unity)

  • Unity에서 public 필드는 기본적으로 인스펙터에 노출된다.
  • 하지만 프로퍼티는 기본적으로 노출이 되지 않는다.
  • 데이터를 조절할 필요가 있으면 필드.
    캡슐화와 제어가 필요하면 프로퍼티로 많이 나누어 사용한다.


⭐ 짧은 요약

OOP원칙 캡슐화, 유지보수, 코드 안정성 을 고려했을 때, 가장 효율적인 선택이다.
자동 프로퍼티는 당장 로직은 필요 없지만 미래에 추가될 수도 있는 값을 위한 가장 깔끔한 기본형이다.



profile
개발자가 되는 그 날 까지

0개의 댓글