C#中索引器的定义与使用

Posted on 2008-04-10 21:08 火山工作室 阅读(119) 评论(0)  编辑 收藏 引用 网摘 所属分类: 高职IT教育

索引器功能是C#独有的特性之一,目的是让看上去像数组下标的访问方式,可以访问到对象内部的数据。

     class MyRow

     {

         private string a;

         private string b;

         public string this[int i]      //定义整型索引器

         {

              get

              {

                   switch(i)

刘老师把这个称之为索引重载,即返回值和定义格式相同,只有形参不同

                   {

                       case 0:return a;break;

                       case 1:return b;break;

                       default:return "Error";

                   }

              }

              set

              {

                   switch(i)

                   {

                       case 0:a=value;break;

                       case 1:b=value;break;

                   }

              }

         }

         public string this[string s]     //定义字符串型索引器

         {

              get

              {

                   switch(s)

                   {

                       case "first":return a;break;

                       case "last":return b;break;

                       default:return "Error";

                   }

              }

              set

              {

                   switch(s)

                   {

                       case "first":a=value;break;

                       case "last":b=value;break;

                   }

              }

         }

     }

     class App

     {

         static void Main()   

         {

              MyRow row = new MyRow();    //请注意row对象有两个索引器,[ ] 括号中既可以是整数,也可以是字符串

              row[0] = "Li";

              row["last"] = "Xiaoniu";

              Console.WriteLine(row["first"]+row[1]);  //

         }

     }

rowMyRow类的一个对象,

row[0] = "Li";            //"Li"传给了row对象内部的a变量。

row["last"] = "Xiaoniu";  //"Xiaoniu"传给了row对象内部的b变量

以上两句调用的是set访问器中的语句,用红色标出来了。

Console.WriteLine(row["first"]+row[1]);  //该语句调用get访问器,得到ab的值。

结果为“LiXiaoniu”。

只有注册用户登录后才能发表评论。

posts - 46, comments - 16, trackbacks - 0, articles - 7

Copyright © 火山工作室