프로그래밍/C#

[C#] 게터,세터,프로퍼티

Victory_HA 2023. 10. 15. 13:44
  • 게터(Getter), 세터(Setter), 그리고 프로퍼티(Property)은 C#에서 데이터 캡슐화 및 정보 은폐를 지원하는 중요한 개념입니다.
  • 이들은 클래스 내의 멤버 변수(필드)를 조작하고 접근하는 방법을 제어하는 데 사용됩니다.

게터(Getter):

  • 게터는 클래스 내의 프라이빗 필드(private field)의 값을 읽어오는 역할을 합니다.
  • 게터 메서드는 "get" 키워드를 사용하여 정의하며 값을 반환하는 코드 블록으로 이루어집니다.
  • 게터를 사용하여 외부 코드에서 필드 값을 읽을 수 있습니다.
private int myField;

public int GetMyField()
{
    return myField;
}

세터(Setter):

  • 세터는 클래스 내의 프라이빗 필드의 값을 변경하는 역할을 합니다.
  • 세터 메서드는 "set" 키워드를 사용하여 정의하며 값을 설정하는 코드 블록으로 이루어집니다.
  • 세터를 사용하여 외부 코드에서 필드 값을 수정할 수 있습니다.
private int myField;

public void SetMyField(int value)
{
    myField = value;
}

프로퍼티(Property):

  • 프로퍼티는 게터와 세터를 묶어서 필드에 접근하고 수정하는 데 사용됩니다.
  • 프로퍼티는 외부에서 필드에 접근하는 것처럼 보이지만, 실제로는 게터와 세터 메서드를 호출합니다. 이로써 데이터의 은폐와 유효성 검사(Validation)를 수행할 수 있습니다.
  • 프로퍼티는 일반적으로 public이며, 클래스 내부의 프라이빗 필드에 대한 접근을 통제합니다.
private int myField;

public int MyProperty
{
    get { return myField; }
    set { myField = value; }
}

차이점:

  • 게터(Getter)와 세터(Setter)는 각각 필드 값을 읽고 쓰는 역할을 하는 메서드입니다. 이들은 명시적인 메서드로 정의되어 있으므로 데이터 은폐와 유효성 검사를 수행하기 어려울 수 있습니다.
  • 프로퍼티(Property)는 게터와 세터를 사용하여 필드에 접근하고 수정하는 데 사용되며, 더 간결하고 읽기 및 쓰기 작업을 통제하기 용이합니다. 프로퍼티를 사용하면 필드와 메서드 사이의 중간 지점처럼 보이는 것이며, 외부에서 클래스 멤버에 접근하는 데 사용됩니다. 프로퍼티를 사용하면 코드를 더 읽기 쉽게 만들고 유지 보수성을 향상시키며, 데이터의 은폐와 유효성 검사를 쉽게 구현할 수 있습니다.