使用数组的SetValue方法与[]索引器

Thi*_*heT 10 c# arrays indexer setvalue

我注意到数组有SetValue方法,当你可以使用索引器时,它看起来有点不合适.SetValue有一些特殊用途吗?MSDN文章似乎没有说出SetValue的用途,只是如何使用它.就速度而言,使用哪种方法会更有效?

Kir*_*oll 15

有时你所拥有的数组就是它Array.本Array类没有索引,所以最好的方式来设置/获取元素值它是通过GetValueSetValue方法.例如:

private void M(Array array) 
{
    array[0] = 5;         // <-- Compiler error
    array.SetValue(5, 0); // <-- Works
}
Run Code Online (Sandbox Code Playgroud)

  • 另外,如果在编译时不知道数组的维数,可以使用`SetValue(Object,Int32 [])`重载来指定运行时的元素:http://msdn.microsoft.com/ EN-US /库/ 758awxk7.aspx (3认同)