C#

필드(Field) vs 속성(Property)

joo_coding 2025. 11. 4. 17:44
public string filePath = "students.ini";

🔹 필드(Field)
클래스 내부에서 데이터를 직접 저장하는 공간
외부에서 접근할 때 직접 읽고 쓸 수 있음
지금 코드에서 public string filePath가 바로 필드

문제점:
외부에서 바로 수정 가능 (iniFile.filePath = "abc.ini";)
나중에 값을 검증하거나, 변경될 때 동작을 넣기 어렵습니다.

-

public string FilePath { get; set; } = "students.ini";

🔹 속성(Property)
읽기/쓰기 방법을 캡슐화해서 관리
값 변경 시 검증, 로그, 이벤트 등 추가 가능
C#에서는 get과 set으로 구현

 

 

  • get : 값을 가져올 때 호출
  • set : 값을 변경할 때 호출
  •  

💡 정리

  • 필드는 단순 저장용 → 외부에서 바로 접근 가능, 검증 어려움
  • 속성(Property)은 캡슐화 + 검증 + 유지보수 편리
  • C#에서는 공개 데이터를 만들 때 필드보다는 속성을 권장합니다.