C#のインデクサーの使い方は何ですか?
C#において、インデクサ(Indexer)は、オブジェクトを配列のようにインデックスでアクセスできる特殊な属性です。インデクサは、オブジェクトの名前ではなく、パラメータを提供してオブジェクトの要素にアクセスすることができます。インデクサは通常、配列やコレクションのようなデータ構造を作成するために使用され、インデックスを使ってオブジェクトの値を取得または設定できるようにします。
クラス内でthisキーワードを持つプロパティを定義する必要があります。以下はサンプルコードです:
public class MyCollection
{
private string[] data = new string[10];
public string this[int index]
{
get
{
return data[index];
}
set
{
data[index] = value;
}
}
}
上記の例では、MyCollectionクラスがインデックサを定義し、整数のインデックスを使用してクラス内のデータにアクセスできるようになりました。このインデックサは、配列と同様に使用することができます。
MyCollection collection = new MyCollection();
collection[0] = "Hello";
collection[1] = "World";
Console.WriteLine(collection[0]); // 输出 Hello
Console.WriteLine(collection[1]); // 输出 World
インデックスワークを使用することで、クラスの使用がより柔軟になり、クラス内の要素にインデックスを使用してアクセスできるため、クラスの内部実装を公開する必要がありません。