更新:2007 年 11 月

索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。

在下面的示例中,定义了一个泛型类,并为其提供了简单的 getset 访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。

C# 复制代码
class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}

索引器概述

  • 使用索引器可以用类似于数组的方式为对象建立索引。

  • get 访问器返回值。set 访问器分配值。

  • this 关键字用于定义索引器。

  • value 关键字用于定义由 set 索引器分配的值。

  • 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。

  • 索引器可被重载。

  • 索引器可以有多个形参,例如当访问二维数组时。

相关章节

C# 语言规范

有关更多信息,请参见 C# 语言规范中的以下各章节:

  • 1.6.7.3 索引器

  • 10.2.9.3 为索引器保留的成员名称

  • 10.9 索引器

  • 13.2.4 接口索引器

请参见