索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。
索引器和数组比较:
(1)索引器的索引值(Index)类型不受限制
(2)索引器允许重载
(3)索引器不是一个变量
索引器和属性的不同点
(1)属性以名称来标识,索引器以函数形式标识
(2)索引器可以被重载,属性不可以
(3)索引器不能声明为static,属性可以
定义索引器的方式与定义属性有些类似,其一般形式如下:
[修饰符] 数据类型 this[索引类型 index]
{
get{//获得属性的代码}
set{ //设置属性的代码}
}
建立以Student类中定义索引器
namespace 索引器 { public class Student { //该类中有一个字符串类型的数组 //建立一个数组======建立索引器 private string[] name=new string [2]; //建立索引器 //定义一个索引器,给name数组赋值和取值 public string this[int index] { get { return name[index]; } set { name[index]=value;} } } }
在主界面调用索引器
namespace 索引器 { class Program { static void Main(string[] args) { Student stu = new Student(); stu[0] = "张三" ; stu[1] = "李四"; Console.WriteLine(stu[0]); Console.ReadKey(); } } }