3、接口中的索引器

  在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器get或set,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器get或set均不能省略;如果只读的,省略set访问器;如果是只写的,省略get访问器。

  例如:

    public interface IAddress 
    { 
    string this[int index]{get;set;} 
    string Address{get;set;} 
    string Answer(); 
    }

  表示所声明的接口IAddress包含3个成员:一个索引器、一个属性和一个方法,其中,索引器是可读写的。

  4、索引器与属性的比较

  索引器与属性都是类的成员,语法上非常相似。索引器一般用在自定义的集合类中,通过使用索引器来操作集合对象如同使用数组一样简单;而属性可用于任何自定义类,它增强了类的字段成员的灵活性。

 

属性

索引器

允许调用方法,如同公共数据成员

允许调用对象上的方法,如同对象是一个数组

可通过简单的名称进行访问

可通过索引器进行访问

可以为静态成员或实例成员

必须为实例成员

其get访问器没有参数

其get访问器具有与索引器相同的形参表

其set访问器包含隐式value参数

除了value参数外,其set访问器还具有与索引器相同的形参表