• C# 索引器


     索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)

    索引器的语法:

    1、它可以接受1个或多个参数
    2、使用this为索引器的名字
    3、参数化成员属性:包含set、get方法。
     
    [访问修饰符] 数据类型 this[数据类型 标识符]
    get{};
    set{}; 
    }
    例:
     public class Indexsy
        {
            private string[] array ;
            public Indexsy(int num)
            {
                array = new string[num];
                for (int i = 0; i < num; i++)
                {
                    array[i] = "Array"+i;
                }
            }
    
            public string this[int num]
            {
                get { return array[num]; }
                set { array[num] = value; }
            }
        }
    
    ///索引器调用
                Indexsy sy = new Indexsy(10);
                Response.Write(sy[5]);//输出Array5
    

    多参数的实例

     public class Indexsy
        {
            private string[] array ;
            public Indexsy(int num)
            {
                array = new string[num];
                for (int i = 0; i < num; i++)
                {
                    array[i] = "Array"+i;
                }
            }
    
            public string this[int num, string con]
            {
                get {
                    if (num == 6)
                    {
                       return con;
                    }
                    else
                    {
                       return array[num];
                    }
                }
                set
                {
                    if (num == 6)
                    {
                        array[num] = con;
                    }
                    else
                    {
                        array[num] = value;
                    }
    
                }
            }
        }
    
    //方法调用
                Indexsy sy = new Indexsy(10);
                sy[5,"10"] = "更换set值";  
                Response.Write(sy[5,""]+" "+sy[6,"更换内部参数"]+" "+sy[8,""]);//输出为更换set值 更换内部参数 Array8,
    

      

    索引器和数组比较:

    (1)索引器的索引值(Index)类型不受限制

    (2)索引器允许重载

    (3)索引器不是一个变量

    索引器和属性的不同点

    (1)属性以名称来标识,索引器以函数形式标识

    (2)索引器可以被重载,属性不可以

    (3)索引器不能声明为static,属性可以

  • 相关阅读:
    搜索自动提示的简单模拟JQuery
    log4j+AOP 记录错误日志信息到文件中
    利用firebug 查看JS方法, JS 调试
    Blog 使用Jsoup解析出html中的img元素
    jquery操作select(取值,设置选中)
    C++解析(20):智能指针与类型转换函数
    C++解析(19):函数对象、关于赋值和string的疑问
    C++解析(18):C++标准库与字符串类
    C++解析(17):操作符重载
    C++解析(16):友元与类中的函数重载
  • 原文地址:https://www.cnblogs.com/xiao-bei/p/3907232.html
Copyright © 2020-2023  润新知