zoukankan      html  css  js  c++  java
  • c# 索引器方法

    索引器方法允许我们构建能够以类似访问数组的语法来访问内部子类型的自定义类型

    在语法上索引器方法和属性的定义很类似,一样是使用get,set,不同的是索引器是使用this[]创建的。

    一个简单的索引器代码:

        /// <summary>
        /// 汽车类容器
        /// </summary>
        public class CarList
        {
            private ArrayList al = new ArrayList();
    
            /// <summary>
            /// 索引器
            /// </summary>
            /// <param name="index"></param>
            /// <returns></returns>
            public Car this[int index]
            {
                get { return (Car)al[index]; }
                set { al.Insert(index, value); }
            }
        }
    
        /// <summary>
        /// 汽车类
        /// </summary>
        public class Car
        {
            public string Name { get; set; }
        }
    
        static void Main(string[] args)
        {
             CarList list = new CarList
             {
                 [0] = new Car() { Name = "Car1" },
                 [1] = new Car() { Name = "Car2" }
             };
             Console.WriteLine(list[0].Name);
        }

    使用字符串值索引对象

    /// <summary>
        /// 汽车类容器
        /// </summary>
        public class CarList
        {
            private Dictionary<string,object> al = new Dictionary<string, object>();
    
            /// <summary>
            /// 索引器,这里使用字符串索引
            /// </summary>
            /// <param name="index"></param>
            /// <returns></returns>
            public Car this[string index]
            {
                get { return (Car)al[index]; }
                set { al[index] = value; }
            }
        }
    
        /// <summary>
        /// 汽车类
        /// </summary>
        public class Car
        {
            public string Name { get; set; }
        }
    
        static void Main(string[] args)
        {
              
             CarList list = new CarList
             {
                 ["car1"] = new Car() { Name = "Car1" },
                 ["car2"] = new Car() { Name = "Car2" }
             };
             Console.WriteLine(list["car1"].Name);
         }

    可以看出索引器是可以重载的;

    虽然在构建自定义集合时,索引器方法很常见,但是记住在泛型类型中(如:List<T>)已经实现索引器,在例子(只是例子)中完全可以使用List<Car>实现。

  • 相关阅读:
    8. 使用Java+TestNG+Selenium搭建测试框架做Web UI自动化测试
    7. Selenium的基本使用
    6. Selenium测试工具简介
    4.自动化测试框架及知识体系
    3.当前主流自动化测试工具的对比选型
    2.自动化测试策略
    1.自动化测试概述
    eclipse工程当中的.classpath 和.project文件什么作用?
    Git 命令
    删除指定字符串的算法题,面试时候没做出来
  • 原文地址:https://www.cnblogs.com/mingtianct/p/6175719.html
Copyright © 2011-2022 走看看