美文网首页
C#-索引器

C#-索引器

作者: JervieQin | 来源:发表于2017-10-14 20:56 被阅读0次
  /// <summary>
    /// 1.特点
    /// C#索引器允许一个对象可以向数组一样被索引。当你为类定义一个索引器时,该类的行为就会像一个虚拟数组一样。你可以使用数组的访问运算符访问该类的实例。

    /// 2.属性和索引器的比较
    /// 索引器的行为在某种程度上有点向属性,都需要通过get,set作为访问器。
    /// 但是属性需要属性名,而索引器需要一个this关键字替代,它指向对象实例。

    /// 3.使用场景
   /// C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。
    /// </summary>
    class Indexer
    {
        //存放名字的数组
        private string[] namelist = new string[size];
        static public int size = 10;
        //定义构造函数,初始化名字列表
        public Indexer() {
            for (int i = 0; i < size; i++)
                namelist[i] = "N.A.";
        }
        //定义一个一维索引器
        public string this[int index]
        {
            //get访问器
            get
            {
                string tmp;
                if (index >= 0 && index <= size - 1)
                    tmp = namelist[index];
                else
                {
                    tmp = "";
                }
                //返回index指定的值
                return (tmp);
            }
            //set访问器
            set
            {
                if (index >= 0 && index <= size - 1)
                    namelist[index] = value;
            }
        }

        //重载索引器
        public int this[string name]
        {
            get {
                int index = 0;
                while (index < Indexer.size)
                {
                    if (namelist[index] == name)
                        return index;
                    index++;
                }
                return index;
            }
        }

        static void Main(string[] args)
        {
            Indexer indexr = new Indexer();
            //使用索引器,内在行为是索引器中get,set的行为
            indexr[0] = "Zara";
            indexr[1] = "Riz";
            indexr[2] = "Nuha";
            indexr[3] = "Asif";
            indexr[4] = "Davinder";
            indexr[5] = "Sunil";
            indexr[6] = "Rubic";


            for (int i = 0; i < Indexer.size; i++)
            {
                Console.WriteLine(indexr[i]);
            }

            Console.WriteLine(indexr["Riz"]);

            Console.ReadKey();
        }
    }

相关文章

  • C#-索引器

  • 索引构建

    1 索引构建 索引构建 建立倒排索引的过程,就是索引构建 索引器 构建索引的程序或者计算机,就是索引器 索引器需要...

  • 索引器, 正则表达式(Regex)

    /* * 索引器: * 作用:让对象具有快速访问元素的能力 * 索引器和数组的区别: * 1.索引器的索引类型不限...

  • 2022-12-27【c#】哈希

    C#-关于GetHashCode的使用准则(转载+翻译)。 - 知乎 (zhihu.com)[https://zh...

  • 10月23日C#学习总结

    今天学习了属性、索引器、继承 属性:C#不直接访问类的数据,通过访问器访问(get,set)。 索引器:索引器(i...

  • C#之索引器

    什么是索引器 索引器允许类或者结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于他们的访问采用...

  • sql自学笔记(十四)——MySQL8.0版本的新特性(四)

    优化器索引 隐藏索引 降序索引 函数索引 隐藏索引 MySQL8.0开始支持隐藏索引(invisible inde...

  • Elasticsearch---索引管理、基于scroll+bu

    创建索引的语法 示例: 添加索引(索引一旦建立,不能修改) 删除索引 分词器的修改与定制 修改分词器设置 默认分词...

  • 索引器

    一.索引器是类似属性的东西 1.1和属性一样,索引器不用分配内存来储存。 1.2索引器和属性都主要被用来访问其他数...

  • 索引器

    索引器是一组get和set访问器,与属性类似。如下展示了一个类的索引器的表现形式,该类可以回去和设置string型...

网友评论

      本文标题:C#-索引器

      本文链接:https://www.haomeiwen.com/subject/ljsgyxtx.html