익명형식은 이렇게 사용해요.
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에요(상속같은건 못해요)
- 항상 기본생성자를 사용해서 생성되요.
댓글 없음:
댓글 쓰기