2012-05-16 10 views
9

配列にはSetValueメソッドがあることに気付きました。 SetValueの特別な目的はありますか? MSDNの記事では、SetValueが何のためのものなのか、それを使用する方法だけを説明していないようです。速度が上がるまで、どの方法を使うのが効率的でしょうか?配列のSetValueメソッドと[]インデクサの使用

答えて

15

場合によっては配列のすべてがArrayであることがあります。 Arrayクラスにインデクサーがないため、要素値を設定/取得する最も良い方法は、GetValueSetValueのメソッドを使用する方法です。例:

private void M(Array array) 
{ 
    array[0] = 5;   // <-- Compiler error 
    array.SetValue(5, 0); // <-- Works 
} 
+3

また、コンパイル時に配列の次元数がわからない場合は、実行時に要素を指定するためにSetValue(Object、Int32 [])オーバーロードを使用できます。http ://msdn.microsoft.com/en-us/library/758awxk7.aspx –

+0

インデックスはどこから始まりますか? 1つは0が予想されますが、今日は.NETのArray型のCOMコンポーネントから返された値が発生しましたが、インデックスは0ではなく1で開始されました。 –

+0

@PeterMortensen、COMは実際には恐ろしい場所です。 :)しかし、それは興味深い情報です。 –

関連する問題