C#

47.C# - 속성 (Property)

Godffs 2009. 8. 12. 19:57
반응형

속성은 메서드와 같은 개념을 가지며 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
다운로드

반응형