演算子 (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# の構文と使用法に関する信頼性のある情報源です。

参照

参照

C# 演算子

配列 (C# プログラミング ガイド)

インデクサー (C# プログラミング ガイド)

unsafe (C# リファレンス)

fixed ステートメント (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス