2016-06-06 3 views
0
나는이에 대한 적절한 구문을 알아내는 데 문제

에서 IDictionary 값을 사용 할 내 소비 코드에서 새로운 변수. 이것들은 맞지 않습니다.는 어떻게하는 방법과 같이이 .. 내가 돌아 및 방법

IDictionary returnItems = FindTransactions(); 
//Cannot implicitly convert type 'System.Collections.Generic.IDictionary<string, object>' to 'System.Collections.IDictionary'. An explicit conversion exists (are you missing a cast?) 

Dictionary<string, object> returnItems2 = FindTransactions(); 
//Cannot implicitly convert type 'System.Collections.Generic.IDictionary<string, object>' to 'System.Collections.Generic.Dictionary<string, object>'. An explicit conversion exists (are you missing a cast?) 

... 어떻게 이것이 올바르게 이루어 졌습니까?

답변

2

당신은 두 경우 모두에 가까웠다 :

IDictionary<string, object> returnItems2 = FindTransactions(); 

일반 IDictionary<K,V> 인터페이스를 확장하지 않는 제네릭이 아닌 IDictionary 그래서 당신은 그 캐스팅 할 수 없으며, 당신은 암시 적으로 저개발국에서 캐스팅 할 수 없습니다 실제 유형이 Dictionary<K, V>

+0

이라는 보장이 없기 때문에, 파생 된 유형 (인터페이스와 같은)에서 파생 된 유형 (구현과 같은)으로 변환 할 수 있습니다. 고맙습니다 – mdelvecchio