C#索引器用法

(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)属性的访问时直接用属性名来进行访问,而索引器的访问是用对象名[索引]进行访问集合中的元素。

  (5)若要是两个集合建立索引器,确保索引器的参数不同,不过需要强制性的类型转化!

 1  public  class zhong
2 {
3 private int[] a=new int[10]{1,2,3,3,4,5,6,7,8,8};
4 private string[] s = new string[6]{"qwe","asd","dfg","tyu","io","hjk"};
5 private int i;
6
7 public int I
8 {
9 get { return i; }
10 set { i = value; }
11 }
12 private int j;
13 public int this[int index]
14 {
15 get { return a[index]; }
16 set { a[index] = value; }
17 }
18 public string this[string ind]
19 {
20 get { return s[int.Parse(ind)]; }
21 set { s[int.Parse(ind)] = value; }
22 }
23 }
24 class Program
25 {
26 static void Main(string[] args)
27 {
28 zhong z = new zhong();
29
30 Console.WriteLine(z[0]);
31 Console.WriteLine(z[1]);
32 Console.WriteLine(z["1"]);
33 Console.WriteLine(z["2"]);
34 }



转载于:https://www.cnblogs.com/heluo/archive/2012/03/22/2412516.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值