C#インデクサの定義
C# のインデクサとは、クラスや構造体の要素をインデックスでアクセスできるようにする特殊なプロパティです。インデクサを定義することで、クラスや構造体のインスタンスを配列やコレクションのように見なせ、インデックスで要素にアクセスできます。
インデクサーの定義には以下が含まれます。
- アクセス修飾子 : インデクサのアクセスレベルを指定します。例えば、public、privateなど
- インデクサーによって返される要素のタイプを示します。
- thisキーワード: 現在のクラスや構造体のインスタンスを表すキーワード。
- インデックスパラメータ:要素にアクセスするために使用されるインデックスタイプと名前を指定します。
- インデクサーで指定されたインデックス位置の要素の値を取得するために使用
- インデクサの指定したインデックスの位置の要素の値を設定するために使用するアクセサ。
インデクサを定義する方法のサンプルコードを示します。
public class MyCollection
{
private string[] elements = new string[5];
public string this[int index]
{
get
{
return elements[index];
}
set
{
elements[index] = value;
}
}
}
上記の例の MyCollection クラスは要素が格納された private な文字列配列 elements を持ち、インデクサ this[int index] を使って要素にアクセスします。インデクサを利用することで、get アクセサを用いれば、指定したインデックス位置の要素値を取得でき、set アクセサを用いれば、指定したインデックス位置の要素値を設定できます。
インデクサを使用すると、配列にアクセスするのと同じように大かっこ[]で要素にアクセスできます。例えば:
MyCollection collection = new MyCollection();
collection[0] = "Hello";
string value = collection[0];
Console.WriteLine(value); // 输出:Hello
インデクサを通して、セットの最初の要素に「こんにちは」を代入し、インデクサを通して、その要素の値を取得して出力しました。