这个问题很简单,但是我在Google / StackOverflow上找不到答案。
我想,因为您可以将int类型强制转换(装箱)到这样的对象上
int i = 1;
object o = i;
并且值类型是从对象继承的,应该有一种方法可以使用IDictionary<string, object>
作为参数,因此该方法可以接受所有IDictionary类型。
示例:
void someMethod()
{
IDictionary<string, int> dict = new Dictionary<string, int>
{
{"val1", 1},
{"val2", 2}
};
someOtherMethod(dict);
}
void somOtherMethod(IDictionary<string, object> parameter)
{
//Do something
}
但是,由于IDictionary<string, int>
无法转换为IDictionary<string, object>
我才刚刚开始学习有关C#语言的更多信息,并且我想了解为什么这行不通。