Blog Content

    티스토리 뷰

    47.C# - 속성 (Property)

    반응형

    속성은 메서드와 같은 개념을 가지며 private값(필드값)을 얻어오거나 설정기능을 가집니다.
    public
    {
        get { retrun 멤버변수; }
        set { [멤버변수 = value; }
    }

    속성의 프로시저의 구조로는 get과 set 구조를 가지고 있습니다.

    기본구조
    private string _Color;
    public string Color
    {
         get { return _Color; } ->get만 사용하면 읽기전용
         set { _Color = value;  } ->set만 사용하면 쓰기전용
    }


    Property.cs
    using System;

    public class Property
    {
        public static void Main(string[] args)
        {       
            //예제1       
            Car sonata = new Car();
            sonata.Name = "소나타";
            sonata.Color = "Red"; //set개념

            Console.WriteLine(sonata.Color); //가져다 씀
            sonata.Run(); //소나타,Red  출력
            Console.WriteLine();

            //예제2
            Person na = new Person();
            na.Name = "홍길동";
            na.Birth = "1988-02-05";

            Console.WriteLine(na.Name);
            Console.WriteLine(na.Age); //22        
        }    
    }

     Car.cs
    using System;

    public class Car
    {
        //Name속성 정의
        private string _Name; //필드는 무조껀 private
        public string Name //속성 (메서드와 같은 개념)
        {
            get { return _Name; }
            set {
                _Name = value; //메인에서 값을 읽어와서 저장된다.
            }
        }

        //Color속성 정의
        private string _Color;
        public string Color
        {
            get { return _Color; }
            set { _Color = value; }
        }

        public void Run()
        {
            Console.WriteLine("{0},{1}", _Name, Color);
        }
    }

    //예제2
    public class Person
    {
        //닷넷 2.0까지 사용됨
        private string _Name;
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        //닷넷3.5부터 사용
        private string _Birth;
        public string Birth
        {
            set//쓰기전용
            {
            _Birth = value; //넘겨온 값을 필드에 세팅
            Age = DateTime.Now.Year - Convert.ToDateTime(value).Year + 1;
            }
        }
        public int Age { get; set; }
    }

    결과화면


    47.Property.zip
    다운로드

    반응형

    Comments