본문 바로가기
C#/기초

C# 프로퍼티(Property) 기초/사용법/예제

by 정보모아모아 2022. 12. 23.

C#의 Property는 객체의 속성을 정의할 때 사용되는 기능입니다.

Property는 객체의 외부에서 속성을 읽고 쓸 수 있도록 해줍니다. 일반적으로 Property는 객체의 멤버 변수를 숨기고 외부에서 접근할 수 있도록 하기 위해 사용됩니다. Property는 아래와 같이 정의할 수 있습니다.

 

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

위의 예제에서 Name은 Person 클래스의 Property입니다. Property는 get과 set 접근자를 사용하여 읽기와 쓰기가 가능합니다. 읽기는 get 접근자를, 쓰기는 set 접근자를 사용하여 접근할 수 있습니다.

위의 예제에서는 Name Property는 객체의 name 멤버 변수를 숨기고 있습니다. 외부에서는 Name Property를 이용해서 name 변수에 접근할 수 있습니다.

Person p = new Person(); 
p.Name = "John"; 
Console.WriteLine(p.Name);

 

C# Property를 사용할 시 주의해야 할 점 또는 유념해야 할점은 아래와 같습니다.

1. Property는 접근 제한자를 지정할 수 있습니다. private과 public 접근 제한자가 있습니다. private 접근 제한자는 같은 클래스 내에서만 접근이 가능하고, public 접근 제한자는 어디서든 접근이 가능합니다.

 

2. Property는 기본값을 지정할 수 있습니다. 아래와 같이 get 접근자에서 기본값을 지정할 수 있습니다.

class Person
{
    private string name = "Unknown";

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

  3. Property는 유효성 검사나 추가적인 로직을 적용할 수 있습니다. 아래와 같이 set 접근자에서 유효성 검사나 추가적인 로직을 적용할 수 있습니다.

class Person
{
    private int age;

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

 

4. C# 프로퍼티는 일반 함수와 유사하게 사용할 수 있습니다.

class Person
{
    private int age;

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

Person p = new Person();

// Property 읽기
int newAge = p.Age;

// Property 쓰기
p.Age = 30;

 

Property와 관련된 프로그래밍 패턴들

C#의 Property는 여러 가지 Programming pattern과 연관이 있습니다.

아래는 Property와 관련된 주요 Programming pattern 입니다.

  1. Getter-Setter pattern: Property를 이용해서 객체의 속성을 읽고 쓸 수 있는 기능을 제공하는 패턴입니다.
  2. Property bag pattern: Property를 이용해서 커스텀 객체에 속성을 저장할 수 있는 기능을 제공하는 패턴입니다.
  3. Data binding pattern: Property를 이용해서 UI 컨트롤과 데이터 속성을 연결할 수 있는 기능을 제공하는 패턴입니다.
  4. Dependency property pattern: Property를 이용해서 컨트롤의 속성과 외부 요소의 속성을 연결할 수 있는 기능을 제공하는 패턴입니다.

 

C# Property를 유용한 C#의 기능입니다. 기존의 변수 선언와 비슷하면서도 함수처럼 로직을 추가 할 수 있다는 점이 상당히 매력적입니다. 

'C# > 기초' 카테고리의 다른 글

[C#] 변수 선언 기초  (0) 2022.12.27