블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

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

Category

Recent Post

Recent Comment

Archive

2009. 8. 18. 17:06 .Net Project/.Net C#
반응형

Program.cs

초기화(Initializer)자란 ?
이름 그대로 초기화를 처리하는 문법을 뜻합니다.
초기화자에는 (객체초기화, 중첩객체초기화, 컬렉션초기자, 초기자혼용) 이 존재

 객체초기자 : 클래스의 객체를 선언과 동시에 초기화 하려면 생성자가 필요하고 생성자에
               게 인수를 전달 하며, 객체 초기자를 사용하면 생성자 없이도 외부에서 필드
               나 프로퍼티에 원하는 값을 대입하여 객체를 초기화 할 수 있습니다.

중첩 객체 초기화 : 다른 클래스에 중첨된 객체도 초기자 문법으로 초기화

컬렉션 초기자 : 컬렉션 생성문 다음의 {} 괄호 안에 요소들의 값을 콤마  
                   로 구분 하며 나열
                  객체 초기자와 구분하기 위해 = 을 쓰지 않고, 요소들만
                   나열하고 있으며, 마치 배열을 초기화하는 형식과 비슷

초기자 혼용 : 객체 초기자와 컬렉션 초기자를 함께 사용 
                    

익명타입(Anonymous Type)
말 그대로 이름이 없는 타입을 뜻하며, 클래스를 선언시 이름을 지정하고 이후 이 이름으로 부터 객체를 생성하는 것이 보통이며, 한번만 사용할 타입이라면 굳이 타입을 선언한 후 객체를 생성할 필요 없이 타입 정의와 객체 생성을 한번에 처리 가능
 


//초기화자(Initilizer) : 개체, 컬렉션
using System;
using System.Collections.Generic; //참조하여 사용

public class productInfo
{
    //name속성
    private string _Name;
    public string Name
    {
        get { return _Name; }
        set { _Name = value; }
    }
    //Quantity 속성 사용하는 면에서 --> 닷넷3.0에서는..편리
    public int Quantity { get; set; }

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

    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.0 특징 --> 긴문장을 짧게 표현
        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.0특징
        List<productInfo> pros = new List<productInfo>() {
            new productInfo("AUDIO", 3) //속성을 사용하였기때문에 사용 가능
       
         //생성자를 생성하였기 때문에 생성가능 
         new productInfo { Name = "RADIO", Quantity =5}         
}; 

        
 //익명형 (Anonymous Type) 닷넷 3.0 특징
        productInfo test = new productInfo("컴퓨터", 100);

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


    }
}

반응형

'.Net Project > .Net C#' 카테고리의 다른 글

100장 쿼리표현식(LINQ)  (0) 2009.08.19
99장 람다식  (0) 2009.08.19
96장 그룹(Group) 알고리즘  (0) 2009.08.18
95장 어트리뷰트(Attribute)  (0) 2009.08.18
94장 형식매개변수에 대한 제약조건  (0) 2009.08.18
posted by Magic_kit