C#视频(陈广版)学习笔记21

来源:互联网 发布:java web后端开发 编辑:程序博客网 时间:2024/06/05 20:23

 索引器和数组的比较

索引器的索引值(index)类型不受限制为整数

     用来访问数组的索引值(index),其类型一定为整数,然后索引器可以定义其他类型的索引值,索引器可以重载。

一个类并不受限只能够定义一个索引器,只要索引器的函数名字不同,一个类就可以拥有多个索引器,可以重载他的功能。

     器不是一个变量索引和数组不同的地方在于,索引器并没有直接对应应用数据存储的地方。而数组则有。

索引器有get和set俩个访问器,用来指明要读取或者索引器无索引时要执行的代码

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.Text;
using System.Reflection.Emit;
using System.Web;
    class Program
    {
        private string name;
        private int id;
        private int score;
        public Program(string name, int id, int score)
        {
            this.name = name;
            this.id = id;
            this.score = score;
        }
        public string Name
        {
            get { return name; }
            set { name = value; }

        }
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public int Score
        {
            get { return score; }
            set { score = value; }

        }
        class Programindexer
        {
            private ArrayList arrProgram;
            public Programindexer()
            {
                arrProgram = new ArrayList();

            }
            public int this[string name, int id]
            {
                get
                {
                    foreach (Program cs in arrProgram)
                    {
                        if (cs.Name == name && cs.Id == id)
                        {
                            return cs.score;
                        }
                    }
                    return -1;
                }
                set
                {
                    arrProgram.Add(new Program(name, id, value));
                }
            }


            public ArrayList this[string name]
            {
                get
                {
                    ArrayList temoer = new ArrayList();
                    foreach (Program cs in arrProgram)
                    {
                        if (cs.Name == name)
                        {
                            temoer.Add(cs);
                        }
                       

                    }
                    return temoer;
                }
            }
        }
 class text
        {
            static void Main()
            {
                Programindexer csd = new Programindexer();

                csd["张三", 1] = 70;
                csd["李四", 1] = 885;
                csd["张三", 2] = 90;
                csd["张三", 3] = 70;
                csd["张三", 4] = 970;
                csd["张三", 5] = 5;
                Console.WriteLine(csd["张三", 2]);
                Console.WriteLine("张三的所有的的成绩");
                ArrayList temoer;
               temoer = csd["张三"];
               foreach (Program cs in temoer)
               {
                   {
                      Console.WriteLine("姓名:"+cs.name+"id号"+cs.id+"数字"+cs.score);
                   }
               }
            }
        }
    }

 

原创粉丝点击