C# 索引器(Indexer)是一种特殊的成员,允许类或结构定义类似数组的访问方式。索引器允许你通过类似数组下标的方式访问对象的元素。以下是关于 C# 索引器的基本知识:

基本索引器
class MyCollection
{
    private string[] data = new string[10];

    // 索引器
    public string this[int index]
    {
        get { return data[index]; }
        set { data[index] = value; }
    }
}

class Program
{
    static void Main()
    {
        MyCollection collection = new MyCollection();

        // 使用索引器设置值
        collection[0] = "Item 1";

        // 使用索引器获取值
        string value = collection[0];
        Console.WriteLine(value);  // 输出: Item 1
    }
}

在这个例子中,MyCollection 类定义了一个名为 data 的私有数组,并使用索引器允许外部代码通过整数索引访问和修改数组元素。

多维索引器
class Matrix
{
    private int[,] data = new int[3, 3];

    // 多维索引器
    public int this[int row, int col]
    {
        get { return data[row, col]; }
        set { data[row, col] = value; }
    }
}

class Program
{
    static void Main()
    {
        Matrix matrix = new Matrix();

        // 使用多维索引器设置值
        matrix[0, 0] = 1;

        // 使用多维索引器获取值
        int value = matrix[0, 0];
        Console.WriteLine(value);  // 输出: 1
    }
}

这个例子中,Matrix 类定义了一个多维数组,并使用多维索引器允许通过两个整数索引访问和修改数组元素。

集合类中的索引器

索引器通常在集合类中使用,以提供类似数组的访问方式。例如,List<T> 类使用索引器来获取和设置列表中的元素:
List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
int element = myList[2]; // 获取索引为2的元素,值为3

使用索引器,你可以使类的实例在使用时更加直观和易于理解,同时提供了对类内部数据结构的封装。


转载请注明出处:http://www.zyzy.cn/article/detail/6364/C#