一.索引器
(1)定义:
索引器是一种特殊的类成员,它能够让对象以类似数组的形式来存取,使程序看起来更为直观,更容易编写。
定义形式如下:
[修饰符] 数据类型 this[索引类型 index]
{
get{//获得属性的代码}
set{//设置属性的代码}
}
其中,修饰符包括:public,protected,private,internal,new,virtual,sealed,override, abstract,extern.
(2)实现Demo:
【单参数索引器】
static void Main(string[] args)
{
//一般索引器(参数为int类型)
Console.WriteLine("--------------int类型作为下标对索引器进行存储------------------");
var worker = new IndexerWork();
worker[0] = "liupeng";
worker[1] = "zhangyonghe";
Console.WriteLine(string.Format("一号员工的名字为:{0}", worker[0]));
Console.WriteLine(string.Format("二号员工的名字为:{0}", worker[1]));
Console.WriteLine("--------------string类型作为下标对索引器进行存储---------------");
//索引器(参数为string类型)
var ht = new IndexerWork();
ht["AA"] = "liupeng";
ht["BB"] = "zhangyonghe";
Console.WriteLine(string.Format("一号员工的名字为:{0}", ht["AA"]));
Console.WriteLine(string.Format("二号员工的名字为:{0}", ht["BB"]));
Console.ReadKey();
}
public class IndexerWork
{
public string[] Worker = new string[10];
private readonly Hashtable Ht = new Hashtable();
public string this[int index]
{
get { return Worker[index]; }
set { Worker[index] = value; }
}
public string this[string index]
{
get { return Ht[index].ToString(); }
set { Ht.Add(index, value); }
}
}
运行结果为:
【多参数索引器】
//多参数索引器
var moreIndexer = new IndexerWork();
moreIndexer[1, "AA"] = "I am work in BaiDu!";
moreIndexer[2, "BB"] = "I am work in LeTv";
Console.WriteLine(string.Format("一员工的公司为:{0}", moreIndexer[1, "AA"]));
Console.WriteLine(string.Format("二员工的公司为:{0}", moreIndexer[2, "BB"]));
public class IndexerWork {
private readonly List_stuList = new List();
public string this[int index, string name]
{
get
{
var list = _stuList.Find(x => x.StuNo == index && x.StuName == name);
return list.ClassName;
}
set
{
_stuList.Add(new StudentInfo()
{
StuNo = index,
StuName = name,
<