작성날짜 : 2011-03-16 |
참고 : MSDN Developer Network - 속성
Property
속성은 내부적으로는 접근자 메서드입니다. 이는 전용 필드 값을 읽고 쓰는 것에 대한 매커니즘이라 할 수 있습니다.
속성을 정의할 때 get과 set으로 구성할 수 있는데 이들의 액세스 수준을 다르게 정의할 수도 있습니다.
또한, get과 set 중 하나만을 정의할 수도 있으며 특별히 접근자 코드가 필요치 않으면 get과 set의 코드를 정의하지 않으면 자동으로 구현해 줍니다.
namespace AboutProperty { class Man { const int max_iq = 3; const int min_iq = 0;
int iq;
public void Think() { Iq++; } public void Play() { Iq--; } // 사용자의 의해 잘못 접근하는 것을 차단할 수 있다. public int Iq { get { return iq; } private set { if (value > max_iq) { iq = max_iq; } else { if (value < min_iq) { iq = min_iq; } else { iq = value; } } } }
// 멤버 필드의 접근이 어떻든 상관없을 때는 프로퍼티로 정의하라. public int Foo { get; private set; } public void ThinkFoo() { Foo++; } }
class Program { static void Main(string[] args) { Man man = new Man();
man.Think(); Console.WriteLine("{0}", man.Iq); man.Think(); Console.WriteLine("{0}", man.Iq); man.Think(); Console.WriteLine("{0}", man.Iq); man.Think(); Console.WriteLine("{0}", man.Iq); man.Think(); Console.WriteLine("{0}", man.Iq); man.Play(); Console.WriteLine("{0}", man.Iq); man.Play(); Console.WriteLine("{0}", man.Iq);
//man.Iq = 300; // set 접근자에 액세스할 수 없으므로 'AboutProperty.Man.Iq' 속성 또는 인덱서는 이 컨텍스트에서 사용할 수 없습니다. } } } |
실행 화면
'Programming > .NET' 카테고리의 다른 글
[.NET] Static (0) | 2015.05.19 |
---|---|
[.NET] Const 와 readonly (0) | 2015.05.19 |
[.NET] .NET Interface (0) | 2015.05.11 |
[.NET] .NET 형식 (0) | 2015.05.11 |
[.NET] .NET 개요 (0) | 2015.05.11 |