目录
1.基本概念
让对象可以像数组一样通过索引访问其中元素,使程序看起来更直观,更容易编写。
2.索引器语法
访问修饰符 返回值 this[参数类型 参数名,参数类型 参数名.....]
{
get{}
set{}
}
和函数的使用类似。
class Person
{
private string name;
private int age;
private Person[] friends;
public Person this[int index]
{
get
{
return friends[index];
}
set
{
//value代表传入的值
friends[index]=value;
}
}
}
3.索引器的使用
类似于数组。
static void Main(string[] args)
{
Person p=new Person();
p[0]=new Person();
Console.WriteLine();
}
4.索引器中可以写逻辑
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;
}
//该逻辑不够严谨
5.索引器可以重载
public int this[int i,int j]
{
get
{
return array[i,j];
}
set
{
array[i,j]=value;
}
}
public string this[string str]
{
get
{
switch(str)
{
case"name"
return this.name;
}
return" ";
}
}
//不使用return会报错,或者使用default不会报错。
6.总结
//固定写法:
//访问修饰符 返回值类型 this[参数类型 参数名]
//get,set语句块
//可以重载
//结构体里面也支持索引器。