[] 演算子 (C# リファレンス)
更新 : 2007 年 11 月
角かっこ ([]) は、配列、インデクサ、および属性で使用します。角かっこは、ポインタでも使用できます。
解説
配列型は、型名の後に [] が続きます。
int[] fib; // fib is of type int[], "array of int".
fib = new int[100]; // Create a 100-element int array.
配列の要素にアクセスするには、目的の要素の添字を角かっこで囲みます。
fib[0] = fib[1] = 1;
for (int i = 2; i < 100; ++i) fib[i] = fib[i - 1] + fib[i - 2];
配列の添字が範囲外の場合は、例外がスローされます。
配列の添字演算子は、オーバーロードできません。ただし、型ではインデクサおよび 1 つ以上のパラメータをとるプロパティを定義できます。インデクサのパラメータは配列の添字と同じように角かっこで囲みますが、整数でなければならない配列の添字とは異なり、インデクサのパラメータは任意の型として宣言できます。
たとえば、.NET Framework では任意の型のキーと値を関連付ける Hashtable 型を定義しています。
System.Collections.Hashtable h = new System.Collections.Hashtable();
h["a"] = 123; // Note: using a string as the index.
角かっこは、属性 (C# プログラミング ガイド)を指定するためにも使用します。
// using System.Diagnostics;
[Conditional("DEBUG")]
void TraceMethod() {}
角かっこを使用して、ポインタにインデックスを作成できます。
unsafe void M()
{
int[] nums = {0,1,2,3,4,5};
fixed ( int* p = nums )
{
p[0] = p[1] = 1;
for( int i=2; i<100; ++i ) p[i] = p[i-1] + p[i-2];
}
}
添字の範囲チェックは行われません。
C# 言語仕様
詳細については、「C# 言語仕様」の次のセクションを参照してください。
1.6.7.5 演算子
7.2 演算子