索引器
- 索引器能够使对象像数组一样被索引,使用数组的访问方式 object[x]
- 索引器的声明在某种程度上类似于属性的声明,例如,使用 get 和 set 方法来定义一个索引器
- 定义属性需要提供属性名,而定义索引器需要提供一个指向对象实例的 this 关键字
- 索引可以重载
实现代码:
public class NumberIndex
{
int num0 = 0;
int num1 = 12;
int num2 = 127;
public int this[int number]
{
get
{
switch (number)
{
case 0:
return num0;
case 1:
return num1;
case 2:
return num2;
default:
return 0;
}
}
set
{
switch (number)
{
case 0:
num0 = value;
return;
case 1:
num1 = value;
return;
case 2:
num2 = value;
return;
default:
return;
}
}
}
public int this[string name]
{
get
{
switch (name)
{
case "张三":
return 100;
case "李四":
return 1000;
case "王二":
return 10000;
default:
return 0;
}
}
}
}
一般用法:
static void Main(string[] args)
{
NumberIndex number = new NumberIndex();
number[0] = 1000;
for (int i = 0; i < 5; i++)
{
Console.WriteLine(number[i]);
}
Console.WriteLine(number["张三"]);
Console.ReadLine();
}
应用场景
- 自定义键值对
- 自定义访问类的数据