为什么不能将IDictionary <string,int>转换为IDictionary <string,object>?

时间:2019-07-26 06:10:43

标签: c# dictionary casting boxing

这个问题很简单,但是我在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#语言的更多信息,并且我想了解为什么这行不通。

0 个答案:

没有答案