对索引器的理解
在C#语言中,比如我们声明一个整型数数组:int[] arr=new int[5],实际上生成了一个数组类对象,arr 是这个对象的引用(地址),访问这个数组元素的方法是:
arr[下标]
在数组类中,使用索引访问数组元素。
数组也是类,同样,是否可以定义自己的类,用索引访问类中的数据成员?,索引器(indexer)为我们提供了通过索引方式,访问类的数据成员的方法。
看下面的例子,用于打印出小组人员的名单:
using System
class Team
{
string[] s_name = new string[2];//定义字符串数组,记录小组人员姓名
public string this[int nIndex];//索引指示器声明,this为类Team类的对象
{
get //用对象名[索引]得到小组人员姓名时,调用get方法
{
return s_name[nIndex];
}
set //用对象名[索引]修改小组人员姓名时,调用set方法
{
s_name[nIndex] =value; //value为被修改值
}
}
}
class Test
{
public static void Main()
{
Team t1 = new Team();
t1[0]="张三";
t1[1]="李四";
Console.WriteLine("{0},{1}",t1[0], t1[1]);
}
}
输出结果如下:张三,李四
这里我们可以看出,索引器是用来把一个对象,采用数组方式,访问它的成员变量,就像属性访问字段一样。另外,索引器可以重载。