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 입니다.
- Getter-Setter pattern: Property를 이용해서 객체의 속성을 읽고 쓸 수 있는 기능을 제공하는 패턴입니다.
- Property bag pattern: Property를 이용해서 커스텀 객체에 속성을 저장할 수 있는 기능을 제공하는 패턴입니다.
- Data binding pattern: Property를 이용해서 UI 컨트롤과 데이터 속성을 연결할 수 있는 기능을 제공하는 패턴입니다.
- Dependency property pattern: Property를 이용해서 컨트롤의 속성과 외부 요소의 속성을 연결할 수 있는 기능을 제공하는 패턴입니다.
C# Property를 유용한 C#의 기능입니다. 기존의 변수 선언와 비슷하면서도 함수처럼 로직을 추가 할 수 있다는 점이 상당히 매력적입니다.
'C# > 기초' 카테고리의 다른 글
[C#] 변수 선언 기초 (1) | 2022.12.27 |
---|