5.14.4 索引器的声明及使用
要声明类或结构上的索引器,请使用this关键字,例如:
public int this[int index] //声明索引器 { // get and set 访问 }
|
索引器的修饰符有new、public、protected、internal、private、virtual、sealed、override、abstract和extern。当索引器声明包含extern修饰符时,称为外部索引器。因为外部索引器声明不提供任何实际的实现,所以它的每个访问器声明都由一个分号组成。
下面定义了一个泛型类,并为其提供了简单的get和set访问器(用来分配和检索值)。代码如下:
class SampleCollection<T> { private T[] arr = new T[100]; public T this[int i] { get { return arr[i]; } set { arr[i] = value; } } }
|
接着,在Program类中实例化一个上面定义的泛型类对象,并使用该对象实现了一个索引器。具体代码如下:
class Program { static void Main(string[] args) { SampleCollection<string> s= new SampleCollection<string>(); s[0] = "索引器的使用"; System.Console.WriteLine(s[0]); } }
|
说明:C#并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的,可以通过搜索集合内的字符串并返回相应的值实现此类索引器。由于访问器可被重载,字符串和整数版本可以共存。
【责任编辑:
阚书 TEL:(010)68476606】