索引器

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 索引
{
    class Program
    {
        static void Main(string[] args)
        {
            Person per = new Person();
            //per.Numbers = new int[] { 1, 2, 3, 4, 5 };

            //for(int i =0; i < per.Numbers.Length;i++)
            //{
            //    Console.WriteLine(per.Numbers[i]);
            //}

            //以索引方式访问
            per[0] = 2;
            per[1] = 3;
            per["Mao"] = "good";
            per["Dog"] = "bad";
            for (int i = 0; i < per.Numbers.Length; i++)
            {
                Console.WriteLine(per[i]);
            }

            Console.WriteLine(per["Mao"]);
            Console.ReadKey();

            

        }
    }

    class Person
    {
        private int[] numbers = new int[5];

        public int[] Numbers
        {
            get
            {
                return numbers;
            }
            set
            {
                numbers = value;
            }
        }

        //创建索引器,让对象以索引的方式操作数组
        public int this[int index]
        {
            get
            {
                return numbers[index];
            }

            set
            {
                numbers[index] = value;
            }
        }

        //键值对,前面是键,后面是值
        Dictionary<string, string> dic = new Dictionary<string, string>();
        public string this[string index]
        {
            get
            {
                return dic[index];
            }

            set
            {

                dic[index]= value;
            }
        }

        Dictionary<int, string> dic2 = new Dictionary<int, string>();

        //public string this[int index] { }
        //与public int this[int index]只有返回值不一样,不能重载
    }
}

  

posted @ 2017-09-30 15:45  mCat  Views(152)  Comments(0Edit  收藏  举报