C#索引器学习笔记(一)
索引器的理解定义
索引器实质上就是含参的属性。相较于数组的索引值必须为整数,索引器的索引值可以为任意类型,性质有些像哈希表,用法如下:
//这是索引器的接口,其中包含get方法和set访问器
public interface ISomeInterface
{
int this[int index]
{
get;
set;
}
}
public IndexerClass:ISomeInterface
{
private int[] arr=new int[100];
public int this[int index]
{
get
{
return arr[index];
}
private set
{
arr[index]=value;
}
}
}
由于代码中有get和set访问器,作为一个有参属性,索引器需要设置输入值的条件,从而防止出现非法输入。此处以get访问器为例:
public string this[int index]
{
get
{
string tmp;
if(index>=0&&index<=nameList.Length-1)
{
tmp=nameList[index];
}
else
{
tmp="";
}
return tmp;
}
}
并且值得一提的是 “private int[] arr=new int[100];”,在该代码中private限制了arr的使用,使得arr[]只能使用于类内部。事实上,在不明确一个参数的使用范围时,建议从最小范围取起。这样做可以防止代码中的参数随意引用,从而影响代码的健壮性和安全性。
索引器本身还可以重载(即参数的个数允许发生改变),