C#中的索引器知识点的总结
索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。下面是典型的索引器的设计,在这里忽略了具体的实现。
using System;class BitArray{int[] bits;int length;public BitArray(int length){ if (length < 0) throw new ArgumentException(); bits = new int[((length - 1)>> 5) + 1]; this.length = length;}public int Length{ get { return length; }}public bool this[int index]{ get { if (index < 0 || index >=length) throw new IndexOutOfRangeException(); else return (bits[index >> 5] &1 << index) != 0; } set { if (index < 0 || index >=length) throw newIndexOutOfRangeException(); else if(value) bits[index >> 5] |= 1 <<index; else bits[index >> 5] &= ~(1<< index); } }}class Test{ static void Main() { BitArray Bits=new BitArray(10); for(int i=0;i<10;i++) Bits[i]=(i%2)==bsp; Console.Write(Bits[i]+" "); }}
编译并运行程序可以得到下面的输出: True False True FalseTrue False True False True False
上面的程序通过索引器的使用为用户提供了一个界面友好的bool数组,同时又大大降低了程序的存储空间代价。索引器通常用于对象容器中为其内的对象提供友好的存取界面--这也是为什么C#将方法包装成索引器的原因所在。实际上,可以看到索引器在.NET Framework类库中有大量的应用。
以上是我关于C#中索引器知识点的总结,如有相悖,请批评指教。