이번엔 익명형식이라는 녀석에 대해 알아볼께요.

익명형식은 이렇게 사용해요.

var anonyValue = new {Name = "피요히코", Age=30 };

아주 간단하죠?
이렇게 하면 내부적으로
이렇게 바꿔준다네요


internal class???
{
     string _Name;
     int _Age;
     public string Name
     {
          get{return _Name;} set {_Name = value;}
     }
     public int Age
     {
          get{return _Age;} set{_Age = value;}
     }
}

알아서 해주는거죠.
대신 이렇게 알아서 하기 위해서
compile시에는 느려지게 됩니다.
(complie때 알아서 알아서 하려면 어쩔수 었겠죠)

대신 컴파일 되고 나서는 성능에 대한 문제는 없다네요

이런 익명형식은
- 이름을 컨트롤 할수가 없어요. (complie시에 알아서 알아서)
- 항상 System.Object를 확장해요
- 필드와 프로퍼티는 항상 read-only에요
- 이벤트나 커스텀메소드등을 지원안해요.
- 항상 묵시적으로 selead에요(상속같은건 못해요)
- 항상 기본생성자를 사용해서 생성되요.


출처?는 김수영MVP님의 주말특강입니다
by 피요히코~ 2009. 4. 26. 13:56
| 1 |