C#

프로퍼티 (Property)

잼잼재미 2023. 11. 8. 11:23

● 프로퍼티(Property)

 - 객체의 필드 값을 읽거나 설정하는데 사용되는 접근자 메서드의 조합
 - 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 함
 - 필드에 대한 접근 제어와 데이터 유효성 검사 등을 수행

 - 필드 접근을 제어하면, 코드의 안정성과 가독성을 높힘
 - get / set 사용

 

● 예시

class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }
}

Person person = new Person();
person.Name = "John";   // Name 프로퍼티에 값 설정
person.Age = 25;        // Age 프로퍼티에 값 설정

Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

 

※ 프로퍼티 접근 제한자 적용 & 유효성 검사 예제

class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        private set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set
        {
            if (value >= 0)
                age = value;
        }
    }
}

Person person = new Person();
person.Name = "John";     // 컴파일 오류: Name 프로퍼티의 set 접근자는 private
person.Age = -10;         // 유효성 검사에 의해 설정x

// Name과 Age 프로퍼티에 접근하여 값을 출력합니다.
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

 

● 자동 프로퍼티

 - 프로퍼티를 간단하게 정의하고 사용
 - 간단한 구문으로 필드의 선언과 접근자 메서드의 구현을 컴파일러가 자동으로 처리

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Person person = new Person();
person.Name = "John";     // 값을 설정
person.Age = 25;          // 값을 설정

Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");  // 값을 읽어 출력