.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 索引器分配的值。

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

    • 索引器可被重载。

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

原文地址:https://www.cnblogs.com/dragon-L/p/4397525.html