• .net 索引器


      索引器允许类或结构的实例就像数组一样进行索引。 索引器类似于属性,不同之处在于它们的访问器采用参数。

      在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法)。 Program 类为存储字符串创建了此类的一个实例。

      

        public class DexerVehicle
        {
    
            public string type = "";
            private Hashtable parts = new Hashtable();
            private Hashtable parts2 = new Hashtable();
    
            public DexerVehicle(string type)
            {
                this.type = type;
            }
    
            //索引 使用this定义
            public object this[string key]
            {
                get { return parts[key]; }
                set { parts[key] = value; }
            }
    
            //属性
            public object name
            {
                get { return parts2["doors"] = name; }
                set { parts2["doors"] = value; }
            }
    
            // 方法
            public void Show()
            {
                Console.WriteLine(" ---------------------------");
                Console.WriteLine(" Vehicle Type: " + type);
                Console.WriteLine(" Frame : " + parts["frame"]);
                Console.WriteLine(" Engine : " + parts["engine"]);
                Console.WriteLine(" #Wheels: " + parts["wheels"]);
                //属性
                Console.WriteLine(" #Doors : " + parts2["doors"]);
            } 
        }
        class Program
        {
            static void Main(string[] args)
            {
                DexerVehicle vehicle = new DexerVehicle("car");
                //索引器允许类或结构的实例就像数组一样进行索引
                vehicle["frame"] = "你好";
                vehicle["engine"] = "你好1";
                vehicle["wheels"] = "你好2";
                vehicle.name = "张三";
                vehicle.Show();
                Console.ReadLine();
            }
        }
      • 使用索引器可以用类似于数组的方式为对象建立索引。

      • get 访问器返回值。 set 访问器分配值。

      • this 关键字用于定义索引器。

      • value 关键字用于定义由 set 索引器分配的值。

      • 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。

      • 索引器可被重载。

      • 索引器可以有多个形参,例如当访问二维数组时。

  • 相关阅读:
    Bellman-Ford算法
    POJ3468--A Simple Problem with Integers(Splay Tree)
    【组队训练】2014鞍山区域赛
    Educational Codeforces Round 85 (Rated for Div. 2)
    HDU6061 RXD and functions【NTT】
    HDU6434 Count【欧拉函数 线性筛】
    2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)(9/11)
    2015 German Collegiate Programming Contest (GCPC 15) + POI 10-T3(12/13)
    CodeCraft-20 (Div. 2)
    图论题集
  • 原文地址:https://www.cnblogs.com/dragon-L/p/4397525.html
Copyright © 2020-2023  润新知