演算子 (C# リファレンス)
角かっこ ([]) は、配列、インデクサー、および属性で使用します。角かっこは、ポインターでも使用できます。
解説
配列型は、型名の後に [] が続きます。
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# および Visual Basic)を指定するためにも使用します。
// 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# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。