索引器的用途
索引器的行为的声明在某种程度上类似于属性(property)。就像属性,可使用 get 和 set 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分。可以使用数组访问运算符([ ])来访问该类或结构的实例。
using System;
using System.Collections;
public class IndexerClass
{
private string[] name = new string[2];
public string this[int index] //索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
{
//实现索引器的get方法
get
{
if (index < 2)
{
return name[index];
}
return null;
}
//实现索引器的set方法
set
{
if (index < 2)
{
name[index] = value;
}
}
}
}
public class Test
{
static void Main()
{
//索引器的使用
IndexerClass Indexer = new IndexerClass();
Indexer[0] = "Tom Brown"; //"="号右边对索引器赋值,其实就是调用其set方法
Indexer[1] = "Jim Green";
Console.WriteLine(Indexer[0]); //输出索引器的值,其实就是调用其get方法
Console.WriteLine(Indexer[1]);
}
}