C#索引器
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。
索引器和数组比较:
(1)索引器的索引值(Index)类型不受限制
(2)索引器允许重载
(3)索引器不是一个变量
索引器和属性的不同点
(1)属性以名称来标识,索引器以函数形式标识
(2)索引器可以被重载,属性不可以
(3)索引器不能声明为static,属性可以
using System; using System.Collections; public class IndexerClass { private string[] name = new string[2]; //索引器必须以this关键字定义,其实这个this就是类实例化之后的对象 public string this[int index] { //实现索引器的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(); //“=”号右边对索引器赋值,其实就是调用其set方法 Indexer[0] = "张三"; Indexer[1] = "李四"; //输出索引器的值,其实就是调用其get方法 Console.WriteLine(Indexer[0]); Console.WriteLine(Indexer[1]); } }