C# 进阶 互动版

索引器的用途

  索引器的行为的声明在某种程度上类似于属性(property)。就像属性,可使用 get 和 set 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分。可以使用数组访问运算符([ ])来访问该类或结构的实例。

  

using System;
using System.Collections;
public class IndexerClass
{
    private string[] name = new string[2];
    public string this[int index]   //索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
    {
        //实现索引器的get方法
        get
        {
            if (index < 2)
            {
                return name[index];
            }
            return null;
        }

        //实现索引器的set方法
        set
        {
            if (index < 2)
            {
                name[index] = value;
            }
        }
    }
}
public class Test
{
    static void Main()
    {
      //索引器的使用
      IndexerClass Indexer = new IndexerClass();
      Indexer[0] = "Tom Brown";    //"="号右边对索引器赋值,其实就是调用其set方法
      Indexer[1] = "Jim Green";
      Console.WriteLine(Indexer[0]);   //输出索引器的值,其实就是调用其get方法
      Console.WriteLine(Indexer[1]);
    }
}