728x90
동적 구현시 유용하게 사용되는 것으로
여러 인터페이스의 명시적 구현을 갖고 있으며 아래는 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));
expando2.AddOne = (Func<int, int>)(x => x + 1);
Console.WriteLine(expando2.AddOne(10));
결과
11
728x90
'C# > Winform' 카테고리의 다른 글
(C#) 병렬처리 테스트 방법 (0) | 2017.09.20 |
---|---|
(.NET) ConcurrentDictionary<TKey, TValue> (0) | 2017.09.17 |
(Linq) PLINQ(병렬 LINQ) (0) | 2017.09.17 |
(.NET) null 값 미리 체크하기 (0) | 2017.09.17 |
윈폼 컨트롤 비동기로 다루기 (MethodInvoker) (0) | 2017.08.24 |