Posted on 2008-04-10 21:08
火山工作室 阅读(119)
评论(0) 编辑 收藏 引用 网摘 所属分类:
高职IT教育
索引器功能是C#独有的特性之一,目的是让看上去像数组下标的访问方式,可以访问到对象内部的数据。
class MyRow
{
private string a;
private string b;
public string this[int i] //定义整型索引器
{
get
{
switch(i)
刘老师把这个称之为索引重载,即返回值和定义格式相同,只有形参不同
|
{
case 0:return a;break;
case 1:return b;break;
default:return "Error";
}
}
set
{
switch(i)
{
case 0:a=value;break;
case 1:b=value;break;
}
}
}
public string this[string s] //定义字符串型索引器
{
get
{
switch(s)
{
case "first":return a;break;
case "last":return b;break;
default:return "Error";
}
}
set
{
switch(s)
{
case "first":a=value;break;
case "last":b=value;break;
}
}
}
}
class App
{
static void Main()
{
MyRow row = new MyRow(); //请注意row对象有两个索引器,[ ] 括号中既可以是整数,也可以是字符串
row[0] = "Li";
row["last"] = "Xiaoniu";
Console.WriteLine(row["first"]+row[1]); //
}
}
|
row是MyRow类的一个对象,
row[0] = "Li"; //将"Li"传给了row对象内部的a变量。
row["last"] = "Xiaoniu"; //将"Xiaoniu"传给了row对象内部的b变量
以上两句调用的是set访问器中的语句,用红色标出来了。
Console.WriteLine(row["first"]+row[1]); //该语句调用get访问器,得到a和b的值。
结果为“LiXiaoniu”。