读书人

C#中的索引器知识点的小结

发布时间: 2013-03-04 17:22:12 作者: rapoo

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#中索引器知识点的总结,如有相悖,请批评指教。

1楼shitouko昨天 17:25
不错啊!

读书人网 >C#

热点推荐