C#索引器

28 阅读1分钟
1.索引器基本概念
让对象可以像数组一样通过索引访问其中元素,使程序看起来更直观,更容易编写
比较适用于 在类中有数组变量时使用 可以方便的访问和进行逻辑处理
2.索引器语法
访问修饰符 返回值 this[参数类型 参数名, 参数类型 参数名....]
{
       get{}
       set{}
}   
    class Person2
    {
        private string name;
        private int age;
        private Person2[] friends;

        public Person2 this[int index]
        {
            get
            {
                return friends[index];
            }
            set
            {
                friends[index] = value;
            }
        }
    }
3.索引器的使用
            Person2 p = new Person2();

            p[0] = new Person2();

            Console.WriteLine(p[0]);
4.索引里面可以写逻辑值
        public Person2 this[int index]
        {
            get
            {
                if (friends == null)
                {
                    return null;
                }
                else if (friends.Length - 1 < index)
                {
                    return null;
                }
                return friends[index];
            }
            set
            {
                if (friends == null)
                {
                    friends = new Person2[] { value };
                }
                else if (friends.Length -1 < index)
                {
                    friends[friends.Length - 1] = value;
                }
                friends[index] = value;
            }
        }
5.索引器可以像函数一样重载
    class Person2
    {
        private string name;
        private int age;
        private Person2[] friends;
        private int[,] arr;

        public int this[int i, int j]
        {
            get
            {
                return arr[i, j];
            }
            set
            {
                arr[i, j] = value;
            }
        }
        public Person2 this[int index]
        {
            get
            {
                return friends[index];
            }
            set
            {
                friends[index] = value;
            }
        }
    }