블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

05-13 08:20

Recent Post

Recent Comment

Recent Trackback

Archive

2015. 5. 11. 16:35 Programming/.NET


작성날짜    : 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
posted by Kanais