C# 索引器_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 索引器

C# 索引器

 2014/8/12 16:08:01  王小贝  程序员俱乐部  我要评论(0)
  • 摘要:索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用[]运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)索引器的语法:1、它可以接受1个或多个参数2、使用this为索引器的名字3、参数化成员属性:包含set、get方法。[访问修饰符]数据类型this[数据类型标识符]
  • 标签:C# 索引

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

索引器的语法:

1、它可以接受1个或多个参数 2、使用this为索引器的名字 3、参数化成员属性:包含set、get方法。   [访问修饰符] 数据类型 this[数据类型 标识符] {  get{}; set{};  } 例:
class="brush:csharp;gutter:true;"> 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,属性可以

发表评论
用户名: 匿名