using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Windows.Forms;
namespace @string
{
class Program
{
static void Main(string[] args)
{
change[] arri=new change[10];
arri[0]=new change(1);
arri[1]=new change(2);
arri[2]=new change(3);
arri[3]=new change(4);
arri[4]=new change(5);
Console.WriteLine(arri[0].Id);
Console.WriteLine(arri[1].Id);
Console.WriteLine(arri[2].Id);
Console.WriteLine(arri[3].Id);
Console.WriteLine(arri[4].Id);
index indexertest = new index();
indexertest[0] = 6;
indexertest[1] = 7;
indexertest[2] = 8;
indexertest["3"] = 9;
indexertest["4"] = 10;
Console.WriteLine(indexertest[0]);
Console.WriteLine( indexertest[1]);
Console.WriteLine( indexertest[2]);
Console.WriteLine(indexertest[3]);
Console.WriteLine(indexertest[4]);
}
}
class change//没有用indexer
{
private readonly int _id;
public change(int i)
{
this._id=i;
}
public int Id
{
get { return _id; }
}
}
class index//用indexer
{
int[] arri2 = new int[10];
public int this[int index]
{
get { return arri2[index];}
set { arri2[index] = value;}
}
public int this[string index1]//indexer重载
{
get { return arri2[int.Parse(index1)]; }
set { arri2[int.Parse(index1)] = value; }
}
}
}
索引器的结构和属性相当的类似,但是它可以添加参数,而属性不可以。索引器有返回值类型而属性没有。
另一方面索引器的功能右相当于类数组,但是索引器优于数值的是它的下标可以不为整型,而数组必须为整形。
还有就是索引器可以被重载。