单参数:
class Program
{
static void Main(string[] args)
{
//声明并实例化这个类
Person p = new Person();
//使用索引器的方式来给类的两个属性赋值
p[0] = "jarod";
p[1] = "123456,./";
//使用类属性取得两个字段信息
Console.Write( p.Name + " / " + p.Password);
}
public class Person
{
//定义两个字段信息
private string name;
private string password;
//定义一个 Name 属性来操作 name 字段
public string Name
{
set { name = value; }
get { return name; }
}
//定义一个 Password 属性来操作 password 字段
public string Password
{
set { password = value; }
get { return password; }
}
//定义索引器,name 字段的索引值为 0 ,password 字段的索引值为 1
public string this[int index]
{
get
{
if (index == 0) return name;
else if (index == 1) return password;
else return null;
}
set
{
if (index == 0) name = value;
else if (index == 1) password = value;
}
}
}
}
/******************************************/
多参数:
using System;
using System.Collections;
class CourseScore
{
private string name;
private int courseID;
private int score;
public CourseScore(string n,int ci,int s)
{
name=n;
courseID=ci;
score=s;
}
public string Name
{
get{ return name; }
set{ name=value; }
}
public int CourseID
{
get { return courseID; }
set { courseID=value; }
}
public int Score
{
get{ return score; }
set{ score=value; }
}
}
class CourseScoreIndexer
{
private ArrayList arrCourseScore;
public CourseScoreIndexer()
{
arrCourseScore=new ArrayList();
}
public int this[string name,int courseID]
{
get
{
foreach(CourseScore cs in arrCourseScore)
{
if(cs.Name==name && cs.CourseID==courseID)
{
return cs.Score;
}
}
return -1;
}
set
{
arrCourseScore.Add(new CourseScore(name,courseID,value));
}
}
public ArrayList this[string name]
{
get
{
ArrayList tempArr=new ArrayList();
foreach(CourseScore cs in arrCourseScore)
{
if(cs.Name==name)
{
tempArr.Add(cs);
}
}
return tempArr;
}
}
}
class Test
{
static void Main()
{
CourseScoreIndexer csi=new CourseScoreIndexer();
csi["ko",1]=88;
csi["ko",2]=80;
csi["ko",3]=90;
Console.WriteLine(csi["ko",1]);
ArrayList tempArr;
tempArr=csi["ko"];
foreach (CourseScore cs in tempArr)
{
Console.WriteLine("name:"+cs.Name+" courseID:"+cs.CourseID+" score:"+cs.Score);
}
}
}