C# 프로퍼티에 커스텀 로직 추가하는 방법
😢상황
- 클래스 내부 데이터를 외부에서 접근할 때, 단순한 값 반환이 아닌 추가 동작(예: 로그 출력, 검증 등) 을 수행하고 싶음
- 자동 구현 프로퍼티로는 이러한 요구를 만족할 수 없음
예:
public string Name { get; set; } // 이 구조로는 로그 출력 불가
🛠️해결법
get
과 set
을 명시적으로 구현하여 커스텀 로직을 삽입:
private TextRange _text;
public TextRange text
{
get
{
// 커스텀 로직 예시
Console.WriteLine("text 프로퍼티가 호출되었습니다.");
return _text;
}
private set
{
_text = value;
}
}
✅정리: 왜 이게 효과 있었는가?
- 프로퍼티 접근 시 원하는 행동(로깅, 검증, 알림 등) 을 삽입할 수 있음
- 캡슐화를 유지하면서도 내부 로직을 유연하게 제어 가능
set
을private
으로 제한함으로써 외부 수정 방지 기능도 함께 구현
👉 이 방식은 디버깅, 추적, 의도된 사용 패턴 강제 등에 매우 유용함