索引器

简介: 通过对类定义个索引器可以把对象的域当做一个数组元素。例如在Car类中定义一个索引器,用来读写make和model域,定义一个类myCar myCar[0]访问make,myCar[1]访问model。

      通过对类定义个索引器可以把对象的域当做一个数组元素。例如在Car类中定义一个索引器,用来读写make和model域,定义一个类myCar

myCar[0]访问make,myCar[1]访问model。

/*
  Example10_11.cs illustrates the use of an indexer
*/

using System;


// declare the Car class
public class Car
{

  // declare two fields
  private string make;
  private string model;

  // define a constructor
  public Car(string make, string model)
  {
    this.make = make;
    this.model = model;
  }

  // define the indexer
  public string this[int index]
  {
    get
    {
      switch (index)
      {
        case 0:
          return make;
        case 1:
          return model;
        default:
          throw new IndexOutOfRangeException();
      }
    }
    set
    {
      switch (index)
      {
        case 0:
          this.make = value;
          break;
        case 1:
          this.model = value;
          break;
        default:
          throw new IndexOutOfRangeException();
      }
    }
  }

}


class Example10_11
{

  public static void Main()
  {

    // create a Car object
    Car myCar = new Car("Toyota", "MR2");

    // display myCar[0] and myCar[1]
    Console.WriteLine("myCar[0] = " + myCar[0]);
    Console.WriteLine("myCar[1] = " + myCar[1]);

    // set myCar[0] to "Porsche" and myCar[1] to "Boxster"
    Console.WriteLine("Setting myCar[0] to \"Porsche\" " +
      "and myCar[1] to \"Boxster\"");
    myCar[0] = "Porsche";
    myCar[1] = "Boxster";
    // myCar[2] = "Test";  // causes IndeXOutOfRangeException to be thrown

    // display myCar[0] and myCar[1] again
    Console.WriteLine("myCar[0] = " + myCar[0]);
    Console.WriteLine("myCar[1] = " + myCar[1]);

  }

}
相关文章
|
8月前
|
算法 编译器 C语言
【C++ 迭代器的空类类型 】深入理解C++迭代器类别与空类标签的奥秘
【C++ 迭代器的空类类型 】深入理解C++迭代器类别与空类标签的奥秘
88 0
|
存储 安全 Java
知识单元六 泛型与集合
知识单元六 泛型与集合
181 1
知识单元六 泛型与集合
|
4月前
|
安全 C# 索引
C#一分钟浅谈:属性与索引器的定义
本文深入浅出地介绍了C#编程中的属性和索引器。属性让字段更安全,通过访问器方法在读写时执行额外操作,如验证数据有效性;索引器则赋予类数组般的访问方式,支持基于索引的数据访问模式。文章通过示例代码展示了如何定义及使用这两种特性,并提供了常见问题及其解决方案,帮助读者写出更健壮、易维护的代码。希望读者能从中学习到如何有效利用属性和索引器增强C#类的功能性。
122 12
|
7月前
|
存储 安全 Java
java泛型与迭代器的关系
java泛型与迭代器的关系
|
C# 索引
C#编程-96:索引器的使用
C#编程-96:索引器的使用
113 0
C#编程-96:索引器的使用
|
C# 索引
C#编程-97:索引器在类中的使用
C#编程-97:索引器在类中的使用
118 0
C#编程-97:索引器在类中的使用
|
C# 索引
C#编程-98:索引器在接口中的使用
C#编程-98:索引器在接口中的使用
133 0
C#编程-98:索引器在接口中的使用
|
存储 C# 索引
C#索引器的实现、索引器和属性的异同对比,这些技能你get到了嘛?
C#索引器的实现、索引器和属性的异同对比,这些技能你get到了嘛?
445 0
|
C# 索引
面向对象——索引器
面向对象——索引器
197 0
|
C++ 编译器 安全
C++复合类型总结(引用)
引用(reference)是其中C++语言复合类型之一。 C++11中新增了一种引用:所谓的“右值引用(rvalue reference)”,之后再详细介绍。
945 0