C# 7

C# 2019. 12. 9. 19:04

* 프로퍼티


// 프로퍼티의 핵심은 GET 접근자와 SET 접근자이다.


class abc{

private int a;


public getmy(){

return a;

}


public setmy(int a){

this.a = a;

}


// 위는 보통 클래스에서 읽기와 쓰기의 형태이다.



* 프로퍼티 기본형


    class Program

    {

        public int my  // 프로퍼티

        {

            get

            {

                return abc;

            }

            set

            {

                abc = value;  // value는 파라미터로 넘어온 값

            }

        }


        static void Main(string[] args)

        {

            Program a = new Program();

            a.abc = 10;

            Console.Write(a.abc);

        }

    }


// 프로퍼티는 이거로 모든게 설명된다.

// get은 출력, set은 입력, a.abc = 10은 set, a.abc는 get

// 꼭 set과 get 둘 다 써줄 필요는 없다.



* 자동 구현 프로퍼티


    class Program

    {

        private int abc;


        public int my  // 프로퍼티

        {

            get;

            set;

        }


        static void Main(string[] args)

        {

            Program a = new Program();

            a.my = 10;

            Console.Write(a.my);

        }

    }


// 위의 프로퍼티를 더 간단하게 만드는 것이다.

// 값을 변수에 저장하는 형태에서 프로퍼티가 아예 변수가 되어버렸다.



* 프로퍼티 + 초기화


    class Program

    {

        public int my

        {

            get;

            set;

        }


        static void Main(string[] args)

        {

            Program a = new Program()

            {

                my = 10  // 곧바로 초기화함

            };

            Console.Write(a.abc);

        }

    }


// 초기화를 거치며 더욱 간단해졌다.



* 무명형식


    class Program

    {

        static void Main(string[] args)

        {

            var a = new { name = "ㅇㅇ", kk = 18 };

            Console.WriteLine("{0} {1}", a.name, a.kk);            

        }

    }    


// var 형태의 프로퍼티이다. get set도 필요없다..

// 값을 바꿀수 없고 쓸모없어 보이긴하는데 LINQ에선 쓸모있다고 한다.



* 인터페이스 + 프로퍼티


  interface INamedValue

    {

        string Name

        {

            get;

            set;

        }


        string Value

        {

            get;

            set;

        }

    }


    class NamedValue : INamedValue

    {

        public string Name

        {

            get;

            set;

        }


        public string Value

        {

            get;

            set;

        }

    }


    class MainApp

    {

        static void Main(string[] args)

        {

            NamedValue name = new NamedValue()

            {

                Name = "이름",

                Value = "박상현"

            };


            NamedValue height = new NamedValue()

            {

                Name = "키",

                Value = "177Cm"

            };


            NamedValue weight = new NamedValue()

            {

                Name = "몸무게",

                Value = "90Kg"

            };


            Console.WriteLine("{0} : {1}", name.Name, name.Value);

            Console.WriteLine("{0} : {1}", height.Name, height.Value);

            Console.WriteLine("{0} : {1}", weight.Name, weight.Value);

        }

    }


// 인터페이스에 프로퍼티를 넣고 초기화한 형태이다.

// 과연 인터페이스에 프로퍼티를 담을 필요가 있나싶다..

'C#' 카테고리의 다른 글

C# 9  (0) 2019.12.09
C# 8  (0) 2019.12.09
C# 6  (0) 2019.12.09
C# 5  (0) 2019.12.09
C# 4  (0) 2019.12.09
블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,