// 초기화자(Initializer) : 개체, 컬렉션
using System;
using System.Collections.Generic;

public class ProductInfo
{
    // Name 속성
    private string _Name;
    public string Name
    {
        get { return _Name; }
        set { _Name = value; }
    }

    // Quantity 자동속성 : 3.X 특징
    public int Quantity { get; set; }

    // Method
    public void Print() { Console.WriteLine("{0} : {1}", Name, Quantity); }

    // Constructor
    public ProductInfo()
    {
        // Empty
    }

    public ProductInfo(string name, int quantity)
    {
        this.Name = name; this.Quantity = quantity;
    }
}

public class 초기화자
{
    public static void Main()
    {
        // 속성으로 초기화
        ProductInfo objProduct = new ProductInfo();
        objProduct.Name = "라디오";
        objProduct.Quantity = 100;
        objProduct.Print();

        // 개체 초기화자 : 3.X 특징
        ProductInfo pi = new ProductInfo() { Name = "TV", Quantity = 50 };
        pi.Print();

        // 생성자로 초기화
        ProductInfo pro = new ProductInfo("DVD", 30);
        pro.Print();

        // 컬렉션 초기화자 : 리스트 제네릭 클래스에 상품 정보 담기
        List<ProductInfo> lst = new List<ProductInfo>();
        lst.Add(new ProductInfo("AUDIO", 3));
        lst.Add(new ProductInfo("RADIO", 5));

        // 3.X 특징
        List<ProductInfo> pros = new List<ProductInfo>()
        {
            new ProductInfo("AUDIO", 3),
            new ProductInfo{ Name="RADIO", Quantity=5 }
        };

        // 익명형(Anonymous Type) : 3.X 특징
        ProductInfo test = new ProductInfo("컴퓨터", 100);
        // 간단한 정보라면 익명형으로 Name, Quantity를 바로 생성 가능
        var at = new { Name = "컴퓨터", Quantity = 100 };
        Console.WriteLine("{0}, {1}", at.Name, at.Quantity);
    }
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

80. 확장메서드  (0) 2009.08.19
(테스트) 학점 계산 프로그램  (0) 2009.08.19
알고리즘 - 12. 그룹(Group)  (0) 2009.08.18
78. 특성(Attribute)  (0) 2009.08.18
77. 형식매개변수에 대한 제약조건  (0) 2009.08.18
Posted by holland14
: