索引器的概念总结

来源:互联网 发布:cad for mac 汉化 编辑:程序博客网 时间:2024/05/05 23:19

索引器的概念总结

一:什么是索引器

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

它同样可以被看成是 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

原创粉丝点击