私はこれをac#プロジェクトで見ました:
public char this[int index]
私は自分自身をC#に慣れていないと思います。誰かがそれが何を意味するのかを助けることができますか?
私はこれをac#プロジェクトで見ました:
public char this[int index]
私は自分自身をC#に慣れていないと思います。誰かがそれが何を意味するのかを助けることができますか?
インデクサーです。
インデクサーを使用すると、クラスまたは構造体のインスタンスに配列と同じようにインデックスを付けることができます。インデクサーは、アクセサーがパラメーターを受け取ることを除いて、プロパティに似ています。インデクサーは配列のような構文を提供します。これにより、配列と同じ方法で型にアクセスできます。インデクサーなどのプロパティは、多くの場合、バッキングストアにアクセスします。多くの場合、int型のパラメーターを受け入れ、配列型のバッキングストアにアクセスします。
http://www.dotnetperls.com/indexerから読んでください
string s = "hello";
Console.WriteLine (s[0]); // 'h'
Console.WriteLine (s[3]); // 'l'
インデクサーの実装
インデクサーを作成するには、これと呼ばれるプロパティを定義し、角かっこで引数を指定します。例えば:
class Sentence
{
string[] words = "The quick brown fox".Split();
public string this [int wordNum] // indexer
{
get { return words [wordNum]; }
set { words [wordNum] = value; }
}
}
このインデクサーの使用方法は次のとおりです。
Sentence s = new Sentence();
Console.WriteLine (s[3]); // fox
s[3] = "kangaroo";
Console.WriteLine (s[3]); // kangaroo
タイプは、それぞれが異なるタイプのパラメーターを持つ複数のインデクサーを宣言する場合があります。インデクサーは、複数のパラメーターを取ることもできます。
public string this [int arg1, string arg2]
{
get { ... } set { ... }
}
get_Item
インデクサーは、次のように、 andと呼ばれるメソッドに内部的にコンパイルさset_Item
れます。
public string get_Item (int wordNum) {...}
public void set_Item (int wordNum, string value) {...}
コンパイラはItem
デフォルトで名前を選択します。実際には、次の属性でインデクサーを装飾することで名前を変更できます。
[System.Runtime.CompilerServices.IndexerName ("Blah")]
これはと呼ばれindexer
ます。
これはインデクサーと呼ばれます。詳細については、MSDNをご覧ください。