索引器
访问类成员的新方法
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序更容易编写、读起来更为直观。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。
格式:
[修饰符]<返回值数据类型>this[参数列表]
{
get{}
Set{}
}
eg:
Class MyZhao
{
Photo[] myphoto;//定义Photo对象数组
public MyZhao(int count)
{
myphoto=new Photo[count];
}
public Photo this[int index]
{
set
{
myphoto[index]=value;
}
get
{
return myphoto[index]
}
}
}
Class Text
{
public static void Main(string[] args)
{
MyZhao objmzhao=new MyZhao(3);
Photo ph1=new Photo(“张三的照片”);
Photo ph2=new Photo(“李四的照片”);
Photo ph3=new Photo(“王五的照片”);
objmzhao[0]=ph1;
objmzhao[1]=ph2;
objmzhao[2]=ph3;
...
}
}
this:表示操作的是本对象的数组或集合成员。
注意:
1)索引器不能具有用户自定义的名称。
2)当然索引器的参数也可以有多个。
3)其set,get访问器必须具有与索引器相同的形参表。
索引器和属性原理相同,它为用户提供了一种方便,可以像访问数组中的元素一样,通过“对象名[index]”格式就能访问类中的成员。这种方式对类中的成员变量起到保护作用,体现了面向对象的封装属性。
拓展:
接口中的索引器
在接口中也可以声明索引器,不过要注意:
1)接口索引器不使用修饰符。
2)接口索引器只包含get或set语句,没有实现语句。
eg:
public interface IAddress
{
string this[index]
{
get;
set;
}
string Address;
string Answer();
}