C#中索引器是个好东西, 可以允许类或者结构的实例像数组一样进行索引。 在foreach或者直接索引时很有用。
使用索引器可以简化客户端代码, 即调用者可以简化语法,直观理解类及其用途。
索引器只能根据声明的形参类型及数量进行区别, 形参命名不能作为区分。

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

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

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

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

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

  • 索引器可被重载。

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



    代码片段:

    class SampleCollection<T> {     // Declare an array to store the data elements.     private T[] arr = new T[100];      // Define the indexer, which will allow client code     // to use [] notation on the class instance itself.     // (See line 2 of code in Main below.)             public T this[int i]     {         get         {             // This indexer is very simple, and just returns or sets             // the corresponding element from the internal array.             return arr[i];         }         set         {             arr[i] = value;         }     } }  // This class shows how client code uses the indexer.class Program {     static void Main(string[] args)     {         // Declare an instance of the SampleCollection type.         SampleCollection<string> stringCollection = new SampleCollection<string>();          // Use [] notation on the type.         stringCollection[0] = "Hello, World";         System.Console.WriteLine(stringCollection[0]);     } } // Output:// Hello, World.