dynamic
우리는 거의 동적 포인터을 가지고 있지만 정확하게는 동적 개체이 아닙니다. C#의 진정한 동적 객체는 ExpandoObject이지만 대부분의 사람들에게는 정말 알려지지 않은 클래스입니다. expando를 사용하면 해시와 마찬가지로 런타임에 멤버를 만들고 삭제할 수 있습니다 (JavaScript와 유사).익명 형식이 ExpandoObject처럼 동적이지 않은 이유는 무엇입니까?
익명 형식의 기능으로 구현되는 대신 ExpandoObject 장점이 별도의 클래스에서 구현 된 이유는 무엇입니까?
유형 안전이 없기 때문에 그다지 좋지 않을까요? 아니면 (DLR) 오버 헤드가 관련되어 있을까요?
익명 형식은 아마 하루에 12 번 사용되지만, 나는 지난 해 소수의 ExpandoObject와 동적 기능 만 사용해야했습니다. 즉, 시간의 99 % [YAGNI] (http://en.wikipedia.org/wiki/You_aren't_gonna_need_it) –
익명 유형의 유형은 컴파일 타임에 알려져 있습니다. 그들은 DLR을 사용하지 않습니다. 연결이 확실하지 않습니까? http://stackoverflow.com/a/392163/453277 –
"우리가 익명 형식을 처리 할 때 C#에서 동적을 사용하는 것이 대부분입니다." 뭐? 익명의 타입을 다룰 때는'dynamic'을 사용하지 말아야합니다. 당신이 있다면, 당신은 * 그 기능을 잘못 사용하고 있습니다 *. 익명의 타입은 * 동적 타입을 사용할 때 윈도우 밖으로 던지는 * 컴파일 타임 타입 세이프티 *를 가질 간단한 오브젝트를 생성하도록 설계되었습니다. – Servy