索引器的概念总结

索引器的概念总结

一:什么是索引器

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值