我如何 return 并使用方法中的 IDictionary 值
how do I return and use an IDictionary value from method
我无法找出正确的语法。我有这样的方法:
public IDictionary<string, object> FindTransactions()
{
Dictionary<string, object> returnItems = new Dictionary<string, object>();
//do stuff
return returnItems;
}
我想将其 return 值分配给我的使用代码中的新变量。这些不太正确:
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?)
...这是如何正确完成的?
你在这两种情况下都很接近:
IDictionary<string, object> returnItems2 = FindTransactions();
泛型 IDictionary<K,V>
接口不扩展非泛型 IDictionary
所以你不能转换成那个,你也不能隐式地从一个派生较少的类型(比如接口)到更派生的类型(如实现),因为不能保证实际类型是 Dictionary<K, V>
我无法找出正确的语法。我有这样的方法:
public IDictionary<string, object> FindTransactions()
{
Dictionary<string, object> returnItems = new Dictionary<string, object>();
//do stuff
return returnItems;
}
我想将其 return 值分配给我的使用代码中的新变量。这些不太正确:
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?)
...这是如何正确完成的?
你在这两种情况下都很接近:
IDictionary<string, object> returnItems2 = FindTransactions();
泛型 IDictionary<K,V>
接口不扩展非泛型 IDictionary
所以你不能转换成那个,你也不能隐式地从一个派生较少的类型(比如接口)到更派生的类型(如实现),因为不能保证实际类型是 Dictionary<K, V>