【发布时间】:2014-07-17 10:32:10
【问题描述】:
这两段代码的结果有什么不同吗?
Array[d1, d2, d3] = value;
和
Array.SetValue(value, d1, d2, d3);
【问题讨论】:
标签: c# multidimensional-array setvalue
这两段代码的结果有什么不同吗?
Array[d1, d2, d3] = value;
和
Array.SetValue(value, d1, d2, d3);
【问题讨论】:
标签: c# multidimensional-array setvalue
第一个是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...
除此之外没有真正的区别。
【讨论】:
它们的结果没有区别,但正如 Selman22 指出的那样,一种方法是类型安全的,而另一种则不是。看看 SetValue 如何支持可变参数计数,但两者都有其存在的理由。
类型安全将确保您不会插入会在运行时崩溃的值。
【讨论】: