我在将int[]
赋值给object[]
时遇到了编译错误(这个问题不是我提出的)。
接受的答案指出,这是由于数组协变性(为了更好地理解,请阅读问题和答案)。
现在我的情况是,虽然我无法将int[]
赋值给object[]
,因为int
是值类型(struct
),但我想知道为什么现在可以这样做:
var arrayOfObjects = new object[] { 58, 58, 78 };// it accepts values types as initializers!
为什么如果我将值类型初始化到数组对象中,这会起作用?难道互换不应该接受值类型吗?
int
值被转换为对象类型。 - Icemanind