속성(C# 프로그래밍 가이드)
속성은 전용 필드 값을 읽고 쓰거나 계산하기 위한 융통성 있는 메커니즘을 제공하는 멤버입니다. 속성은 공용 데이터 멤버인 것처럼 사용할 수 있지만 실제로는 접근자라는 특별한 메서드입니다. 이를 사용하면 메서드의 안전성과 유연성을 높이고 데이터에 쉽게 액세스할 수 있습니다.
이 예제에서 TimePeriod 클래스는 시간을 저장합니다. 내부적으로 이 클래스는 시간을 초 단위로 저장하지만 Hours라는 속성을 사용하면 클라이언트에서 이를 시간 단위로 지정할 수 있습니다. Hours 속성에 대한 접근자는 시간과 초 사이의 변환을 수행합니다.
예제
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}
class Program
{
static void Main()
{
TimePeriod t = new TimePeriod();
// Assigning the Hours property causes the 'set' accessor to be called.
t.Hours = 24;
// Evaluating the Hours property causes the 'get' accessor to be called.
System.Console.WriteLine("Time in hours: " + t.Hours);
}
}
// Output: Time in hours: 24
속성 개요
속성을 사용하면 클래스에서 코드 구현이나 확인 과정을 숨긴 채 값을 가져오고 설정하는 방식을 공개적으로 노출할 수 있습니다.
get 속성 접근자는 속성 값을 반환하는 데 사용되고, set 접근자는 새 값을 할당하는 데 사용됩니다. 이러한 접근자에는 서로 다른 액세스 수준이 설정될 수 있습니다. 자세한 내용은 접근자 액세스 가능성 제한(C# 프로그래밍 가이드)을 참조하십시오.
value 키워드는 set 접근자로 할당되는 값을 정의하는 데 사용됩니다.
set 접근자를 구현하지 않는 속성은 읽기 전용입니다.
사용자 지정 접근자 코드가 필요하지 않은 간단한 속성의 경우 자동으로 구현된 속성을 사용하는 것이 좋습니다. 자세한 내용은 자동으로 구현된 속성(C# 프로그래밍 가이드)을 참조하십시오.
관련 단원
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.