1.基本概念:
让对象可以像数组一样通过索引访问其中元素,使程序看起来更直观,更容易缩写
2.基本语法:
访问修饰符 返回值 this[参数类型 参数名,参数类型 参数名]{
get{ 可以写逻辑,根据需求来处理这里面内容 }
set{ 可以写逻辑,根据需求来处理这里面内容 }
}
class Person
{
private string name;
private int age;
private Person[] friends;
//索引器写法
public Person this[int index]
{
get {
//可以写逻辑,根据需求来处理这里面内容
if(friends ==null ||friends .Length - 1 < index)
{
return null;
}
return friends[index];
}
set {
// 可以写逻辑,根据需求来处理这里面内容
if (friends ==null)
{
friends = new Person[] { value };
}
else if (index >friends .Length - 1)
{
//自己定义了一个规则,如果索引越界,就默认把最后一个朋友顶掉
friends[friends.Length - 1] = value;
}
friends[index] = value;
}
}
}
static void Main(string[] args)
{
//索引器的使用
Person p = new Person();
p[0] = new Person();
Console.WriteLine(p[0]);
}
}
}
3.索引器可以重载