索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)
鸡群3 jiqun3 = new 鸡群3(jis);
for (int i = 0; i < 3;i++ )
{
System.Console.WriteLine(jiqun3[i]);
}
System.Console.WriteLine(jiqun3[20,20]);
public class 鸡群3
{
private 鸡[] ji;
public 鸡群3(鸡[] list)
{
ji = list;//引用类型
}
//索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
public 鸡 this[int index]
{
//实现索引器的get方法
get
{
if (index < ji.Length)
return ji[index];
return null;
}
}
public 鸡 this[int 身高, int 体重]
{
//实现索引器的get方法
get
{
foreach (var v in ji)
{
if (v.身高 > 身高 && v.体重 > 体重)
{
return v;
}
}
return null;
}
}
public IEnumerator GetEnumerator()
{
for (int i = 0; i < ji.Length; i++)
{
yield return ji[i];
}
}
}