using System;
using System.Collections.Generic;
using System.Text;namespace ExConsol2
{
    class Group
    {
        public const int MaxNum = 8;
        private string[] member1;
        //索引器
        public string this[int idx]
        {
            get
            {
                return member1[idx];
            }
            set
            {
                member1[idx] = value;
            }
        }        //--------------------------------------
        private string[] member2;
        //索引器
        //public string this[int idx]
        //{
        //    get
        //    {
        //        return member2[idx];
        //    }
        //    set
        //    {
        //        member2[idx] = value;
        //    }
        //}
        public Group()
        {
            member1 = new string[MaxNum];
            member2 = new string[MaxNum];
        }
        //}
        //=========================================
        //class Program
        //{
        public static void Main(string[] args)
        {
            Group group = new Group();
            //赋值
            group[0] = "张三";
            group[1] = "李四";
            group[2] = "张三";
            group[3] = "李四";
            group[4] = "张三";
            group[5] = "李四";
            group[6] = "张三";
            group[7] = "李四";            for(int i=0;i<Group.MaxNum;i++)
                Console.WriteLine(group[i]);//取值
        }
        //}
    }}
我想在此类中用两个相同类型的两个数组的索引,应该怎么办,如果是一个那么该怎么区分我索引的是哪一个数组??

解决方案 »

  1.   

    索引器允许重载,一个类可以有多个索引器。
    //索引器 
            public string this[int idx] 
            { 
                get 
                { 
                    return member1[idx]; 
                } 
                set 
                { 
                    member1[idx] = value; 
                } 
            }         //-------------------------------------- 
            private string[] member2; 
            //索引器 
            //public string this[int idx] 
            //{ 
            //    get 
            //    { 
            //        return member2[idx]; 
            //    } 
            //    set 
            //    { 
            //        member2[idx] = value; 
            //    } 
            //} 
    但这么写不构成重载
    尝试下面看看
    //public string this[string idx] 
            //{ 
            //    get 
            //    { 
            //        return member2[int.Parse(idx)]; 
            //    } 
            //    set 
            //    { 
            //        member2[int.Parse(idx)] = value; 
            //    } 
            //} 
    希望对你有用
      

  2.   

                private string[] member1;            private string[] member2;            
                
                public string this[int idx]
                {
                    get
                    {
                        return member1[idx];
                    }
                    set
                    {
                        member1[idx] = value;
                    }
                }                        public string this[int idx, int type]
                {
                    get
                    {
                        switch (type)
                        {
                            case 2:
                                return member2[idx];
                            default:
                                return member1[idx];
                        }
                    }
                    set
                    {
                        switch (type)
                        {
                            case 2:
                                member2[idx] = value;
                                break;
                            default:
                                member1[idx] = value;
                                break;
                        }
                    }
                }
      

  3.   

    谢谢,HASSLE,这个就是所想要的结果