C#Multidimensionarrays设置值之间的差异

时间:2014-07-17 10:32:11

标签: c# multidimensional-array setvalue

这两段代码的结果有什么不同吗?

Array[d1, d2, d3] = value;

Array.SetValue(value, d1, d2, d3);

2 个答案:

答案 0 :(得分:2)

第一个是type-safe第二个是不是

考虑一下:

int[,,] array = new int[3, 3, 3];
array[0, 0, 0] = "foo"; // oops!

array.SetValue("foo",0,0,0); // OK for now, but at runtime...

除此之外,没有真正的差异

答案 1 :(得分:0)

他们的结果没有区别,但是Selman22指出一种方法是类型安全的而另一种方法不是。看看SetValue如何支持变量参数计数,但两者都有其存在的理由。

类型安全将确保您不会插入会在运行时爆炸的值。