01-- (2019-10-09)-- 来 了解一下索引器

2019-10-09  本文已影响0人  为体验更多

1.什么是索引器?

  索引器是c#语言中的一种类成员,它可以让对象像数组一样被索引获取。

例如:

string obj = "Abc";
Console.WriteLine(obj[0]); //结果为A

2.一个小Demo说明索引基本用法。

   我们需要有这么一个类,该类有一个int类型的数组成员变量名为arr;我们知道int类型成员变量我们实例对象需要通过属性的访问器get set 来访问,那么我们数组成员变量访问方式就是该属性的索引器(其实本质也是get set方法)。

using System;

class Sample
{
   //数组成员变量
   private int[] arr = new int[3];
public Sample()
{
    arr[0]=100;
}

  //定义数组成员变量索引,类实例对象通过索引访问数组成员变量。
   public int this[int i]
   {
      get { return arr[i]; }
      set { arr[i] = value; }
   }
}

class Program
{
   static void Main()
   {
      var values = new Sample();
      values[1] = "200";
      Console.WriteLine(values[0]);//结果为 100
     Console.WriteLine(values[1]);//结果为200
   }
}

3.索引器定义

   索引器定义方式和属性访问器类似


public 类型 this[类型 参数名称]
{
 get{}//get方法具体实现
 set{} //set方法具体实现
}


例如:
class 对一个Hashtable类型的类成员设置索引
    {
        private Hashtable ht;//字符串索引用到哈希表来存放键值对
        public MyStringIndex(Hashtable ht)
        {
            this.ht = ht;
        }
        public string this[string key]
        {
            get
            {
                string name =(string)ht[key];
                return name;
            }
            set
            {
                ht[key] = value;
            }
        }

如果大家对于上面代码存有疑惑,可以选择自己熟悉的集合类型来变更理解,或者了解一下Hashtable(后续我会编写说明)。

4.小结
我们来看一道题目:
C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数?

上一篇下一篇

猜你喜欢

热点阅读