索引器
索引器类似属性,必须存在访问器。
但索引器没有名字,而且索引器有参数。
声明索引器
相较于属性,索引器把名字改为关键字this,
在this和大括号之间加上一对中括号。
在中括号内填至少一个参数。
class Monster//怪物
{
public int Hp { get; private set; } = 20;
public int MaxHp { get; } = 100;
}
class Corps//军团
{
Monster[] skeleton = new Monster[5];
public Monster this[int i]
{
get => skeleton[i];
set => skeleton[i] = value;
}
}
大多数官方类写了索引器的,通常都是像数组一样包含了很多元素,
或者直接包含了一个数组,但是这个数组不让你访问。
使用索引器
索引器的使用和数组相似。
Corps cor = new Corps();
cor[0] = new Monster();
var mon = cor[0];