这两段代码的结果有什么不同吗?
Array[d1, d2, d3] = value;
和
Array.SetValue(value, d1, d2, d3);
答案 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如何支持变量参数计数,但两者都有其存在的理由。
类型安全将确保您不会插入会在运行时爆炸的值。