2016-06-06 4 views
0

У меня возникли проблемы выяснить правильный синтаксис для этого .. У меня есть метод, как так:как я вернусь и использовать IDictionary значение из метода

public IDictionary<string, object> FindTransactions() 
{ 
    Dictionary<string, object> returnItems = new Dictionary<string, object>(); 

    //do stuff 

    return returnItems; 
} 

Я хочу, чтобы присвоить возвращаемое значение новые переменные из моего кода потребления. Это не совсем верно:

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

 Смежные вопросы

  • Нет связанных вопросов^_^