ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C#索引器该怎么用

C#索引器该怎么用

原创 Linux操作系统 作者:alexzhou618 时间:2009-12-17 22:33:00 0 删除 编辑
索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。它可以使得像数组那样对对象使用下标。它提供了通过索引方式方便地访问类的数据信息的方法。

  要声明类或结构上的索引器,请使用this关键字,例如:

  public int this[int index]  //声明索引器
  {
  // get and set 访问
  }

  索引器的修饰符有:new、public、protected、internal、private、virtual、sealed、override、abstract和extern。当索引器声明包含extern修饰符时,称该索引器为外部索引器。因为外部索引器声明不提供任何实际的实现,所以它的每个访问器声明都由一个分号组成。

  索引器的签名由其形参的数量和类型组成。它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名。


  索引器值不归类为变量;因此,不能将索引器值作为ref或out参数来传递。

  下面用一个例子来说明如何声明和使用索引器。

  在本示例中,定义了一个泛型类,并为其提供了简单的get和set访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。代码如下:

class SampleCollection
{
  private T []arr=newT[100];
  public T this[inti]
  {
    get
    {
      returnarr[i];
    }
    set
    {
      arr[i]=value;
    }
  }
}

  下面是如何使用上述代码实现的索引器,具体代码示例如下:
classProgram
{
  staticvoidMain(string[]args)
  {
    SampleCollection 锁=newSampleCollection();
    s[0]="索引器的使用";
    System.Console.WriteLine(锁[0]);
  }
}

  C#并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的。通过搜索集合内的字符串并返回相应的值,可以实现此类的索引器。由于访问器可被重载,字符串和整数版本可以共存。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/445851/viewspace-622746/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-22

  • 博文量
    52
  • 访问量
    37432