(.NET) ExpandoObject

C#/Winform 2017. 9. 17. 22:19
728x90
728x170

동적 구현시 유용하게 사용되는 것으로

여러 인터페이스의 명시적 구현을 갖고 있으며 아래는 IDictionary 타입을 예시로 보여준것입니다.

아래에서 보시면 아시겠지만 워래 IDctionary 인터페이스는 이름을 사용해 객체를 다루는 방식이지만

동적타이핑을 통해 이들 이름을 속성으로 사용할 수 있습니다.

 

dynamic expando = new ExpandoObject();

IDictionary<string, object> dic = expando;
expando.First = "A";
Console.WriteLine(dic["First"]);

dic.Add("Second","B");
Console.WriteLine(expando.Second); 

결과

A

B

 

아래처럼 메서드인 처럼 사용할 수도 있습니다.

dynamic expando2 = new ExpandoObject();
expando2.AddOne = (Func<int, int>)(x => x + 1);
Console.WriteLine(expando2.AddOne(10));


결과

11

 

728x90
그리드형
Posted by kjun
,