C# 索引器的使用 单参数 多参数 实例

单参数:

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);
   }
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值