zoukankan      html  css  js  c++  java
  • C#中索引器的实现 【转】

    索引器允许类或者结构的实例按照与数组相同的方式进行索引。索引器类似属性,但不同之处在于它们的访问器采用参数。它可以像数组那样对对象采用下标。它提供了通过索引方式方便地访问类的数据信息的方法。

    C#并不将索引类型限制为整数,所以我们可以通过访问器的重载,实现整数索引或者字符串索引。

    重载索引器时,要保证形参的数量或形参类型至少有一不同。这一点同C#中方法重载貌似没有什么区别。

    下面我们就通过简单的例子,实现整数索引和字符串索引。

    在这个例子中,我们需创建两个类 --> Student   Students

    Student类中,包含学生基本信息(属性)和一个方法SayHi()

    Students类中,包含我们要创建的两种索引器,一个Student类类型的数组

    //Student类  

    public Class Student

          {        //构造函数 

                public Student(){}  

                public Student(string name,int age,string hobby)   

                      {       

                            this.Name = name;     this.Age = age;    this.Hobby = hobby;    

                       }    //三个属性 (姓名)Name,(年龄)Age,(爱好)Hobby     

                       private string name;    

                       public String Name      

                              {       

                              get{return name;}           set{name = value;}  

                              }     

                         private int age;      

                         public int Age       {           get{return age;}           set{age = value;}       }         

                         private string hobby;    

                         public string Hobby    {        get{return hobby;}            set{hobby = value;}       }     

                    //方法     

                  public void SayHi()    

                    {  Console.WriteLine("大家好,我是{0},今年{1}岁,喜欢 {2}",Name,Age.ToString(),Hobby);    } 

             }  

    //Students类 

      Public Class Students 

              {    //加载时初始化stu数组    

                public Students()     

                     {  stu[0] = new Student("rose",21,"dancing");  

                         stu[1] = new Student("jack",22,"reading");       

                         stu[2] = new Student("mimi",21,"singing");   }   

                    //Student类类型数组属性    

                      private Student [] stu = new Student[3];     

                       //整数索引器    

                       public Student this[int index]       {get{return stu[index];} }    

                            //字符串索引器    

                      public Student this[string name]    

                                {           

                                   get  {  int i ;  bool found = false;  for(i = 0;i < stu.length;i ++)               

                                        { if(stu[i].Name == name)                  

                                             { found = true;  break; } }     

                                          if(found)  { return stu[i]; }                

                                            else  {return null; }  

                                      }     

                                 } 

                 } 

    Public Class Program 

      {      //Main函数中      

               static void Main()   

                          {Students stu = new Students(); 

                            stu[0].SayHi();        //通过索引查找          

                             stu["rose"].SayHi();   //通过姓名查找  

                             Console.ReadKey();  } 

       }

    执行结果:

       

    乌龟才背着房子过一辈子
  • 相关阅读:
    Selenium简单测试页面加载速度的性能(Page loading performance)
    Selenium Page object Pattern usage
    Selenium如何支持测试Windows application
    UI Automation的两个成熟的框架(QTP 和Selenium)
    分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
    敏捷开发中的测试金字塔(转)
    Selenium 的基础框架类
    selenium2 run in Jenkins GUI testing not visible or browser not open but run in background浏览器后台运行不可见
    eclipse与SVN 结合(删除SVN中已经上传的问题)
    配置Jenkins的slave节点的详细步骤适合windows等其他平台
  • 原文地址:https://www.cnblogs.com/Yellowshorts/p/2922662.html
Copyright © 2011-2022 走看看