2010년 9월 6일 월요일

Anonymous Type(익명형식)

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

익명형식은 이렇게 사용해요.
1.var anonyValue = new {Name = "피요히코", Age=30 };

내부적으로 아래와 같이 변환
01.internal class ???
02.{
03.string _Name;
04.int _Age;
05.public string Name
06.{
07.get{return _Name;} set {_Name = value;}
08.}
09.public int Age
10.{
11.get{return _Age;} set{_Age = value;}
12.}
13.}

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

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

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

댓글 없음:

댓글 쓰기