【问题标题】:C# Multidimensionarrays difference between setting a ValueC# Multidimensionarrays 设置值之间的区别
【发布时间】:2014-07-17 10:32:10
【问题描述】:

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

Array[d1, d2, d3] = value;

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

【问题讨论】:

    标签: c# multidimensional-array setvalue


    【解决方案1】:

    第一个是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...
    

    除此之外没有真正的区别

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-07-21
        • 2013-01-10
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-17
        • 2012-04-07
        相关资源
        最近更新 更多