首页 新闻 会员 周边 捐助

什么是索引器

0
[待解决问题]

对索引器不太了解,请详细介绍一下,谢谢

杀  手的主页 杀 手 | 菜鸟二级 | 园豆:213
提问于:2011-04-26 10:39
< >
分享
所有回答(6)
0
artwl | 园豆:16736 (专家六级) | 2011-04-26 11:13
0
写代码的小2B | 园豆:4377 (老鸟四级) | 2011-04-26 11:40
0

比如说你定义一个list

List<Person> list=new List<Person>();

现在这个list允许这样访问list[数字]这就是索引器,就是允许通过数字或者字符串或者其他方法访问元素。。。

顾晓北 | 园豆:10898 (专家六级) | 2011-04-26 11:54
0

说白了就是当初数组用

黑白电影 | 园豆:215 (菜鸟二级) | 2011-04-26 23:27
0

将一组同类型value用同类型的key来直接获取的方式

醉卧天南 | 园豆:369 (菜鸟二级) | 2011-05-04 13:19
0

(1)当类的成员变量是一个集合类型时,就使用索引器(将索引器声明为static是一个语法错误)。

       [访问修饰符]数据类型(和集合中元素一致)this [数据类型 标识符]

       {

            get{}; set{};

       }

(2)例子:

       class Class1    

       {        

              public string[] stringList = {"呼和浩特","长沙","南京"}; //成员变量是集合类型       

              public int[] zhi = new int[3];        

              public string this[int index]        

              {            

                  get { return stringList[index];}            

                  set { stringList[index] = value.ToString(); }        

               }    

       }  

       class Program    

      {        

             static void Main(string[] args)        

            {            

                  Class1 a = new Class1();            

                  Console.WriteLine(a[0]);            

                  Console.WriteLine(a[1]);            

                  a.stringList[0] = "西安";  //赋值的时候对象.属性的形式,只不过是属性有索引罢了          

                  a[1] = "洛阳";  //第二种赋值方式     

                  Console.WriteLine(a[0]);            

                  Console.WriteLine(a[1]);        

           }    

    }

 运行结果:呼和浩特

               长沙

               西安           

               洛阳

(3)属性可以保护字段的安全性,而索引器则是保护字段集合的安全性,字段集合没法用属性保护。

(4)属性的访问时直接用属性名来进行访问,而索引器的访问是用对象名[索引]进行访问集合中的元素。

学之乐 | 园豆:33 (初学一级) | 2012-03-23 10:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册