C#索引器是一种特殊的属性,允许通过索引访问类或结构中的元素。通过定义索引器,可以将类或结构的实例看作是一个数组或集合,可以使用索引访问其中的元素。
索引器的定义包括以下几个部分:
1. 访问修饰符:指定索引器的访问级别,如public、private等。
2. 返回类型:指定索引器返回的元素类型。
3. this关键字:用于表示当前类或结构的实例。
4. 索引参数:指定用于访问元素的索引类型和名称。
5. get访问器:用于获取索引器中指定索引位置的元素的值。
6. set访问器:用于设置索引器中指定索引位置的元素的值。
以下是一个示例代码,演示了如何定义一个索引器:
```csharp
public class MyCollection
{
private string[] elements = new string[5];
public string this[int index]
{
get
{
return elements[index];
}
set
{
elements[index] = value;
}
}
}
```
在上面的示例中,MyCollection类定义了一个名为elements的私有字符串数组,并通过索引器this[int index]来访问其中的元素。通过get访问器可以获取指定索引位置的元素值,而通过set访问器可以设置指定索引位置的元素值。
使用索引器时,可以像访问数组一样使用方括号[]来访问元素。例如:
```csharp
MyCollection collection = new MyCollection();
collection[0] = "Hello";
string value = collection[0];
Console.WriteLine(value); // 输出:Hello
```
上面的代码通过索引器将"Hello"赋值给了集合的第一个元素,然后通过索引器获取并输出了该元素的值。