草随原

骏马

导航

索引器的概念总结

一:什么是索引器

索引函数是对属性的进一步扩展,它能够以数组的方式来控制对多个变量的读和写。

它同样可以被看成是 Get和Return Set和Value 这样的组合。

所不同的是:
                   
×索引函数以this关键字加数组形式的下标进行定义,并通过数组形式的下标进行访问。
如:public bool this[int index]
public int  this[int ind]
     
×索引函数的get访问和set访问函数带有 ◎参数◎(一般为整数类型或字符串类型)

×索引函数不可以是静态的。但是属性却是可以申明为static的。
               
×索引函数访问的对象不一定是连续的数组。也可以是多个离散的◎字段◎。

×索引函数可以放到接口中,抽象类中。
                   
×class和struct只允许定义一个索引器,而且总是命名为this,虽然只有一个但是允许有
不同的重载。
                   
二:索引器和数组的比较
 
×索引器可以使用非数值下标,而数组只能使用整数下标。
如:public int this [string name]{.....}

×索引器可以重载但是数组不可以。
public int this[int ind]
{}

public int this[char chInStr]//索引器1和索引器2构成了重载。
{}

×索引器不可以作为ref或out参数使用,而数组元素可以:
如:IntBits bits;
Method(ref bits[1]);
                  
×进行数组的深度复制的时候可以考虑使用索引器。(p207框内解说)。

三:接口中使用索引器
      
×可以在接口中声明索引器
 如:
interface IRawInt
{
   bool this[int index]{get;set;}
}
struct RawInt:IRawInt
{
   ...
   public bool this [int index]
   {
        get{....}
 set{....}
   }
   ...
}

×假如在一个类中实现了接口索引器,可以将索引器的实现声明为vitrual。这允许未来的派生类覆盖
get和set accessor

posted on 2007-04-19 15:41  淄衣  阅读(412)  评论(0)    收藏  举报