c# asp.net 多数组索引的解决方法
本人今天做了一个功能 需要在一个类里用多个数组,
数组需要索引器来调用 一个数组
我查了msdn 一个类里面只能有一个this 索引器
那这么多数组如何构造索引呢
我在坛子里找到了解决之道
view plaincopy to clipboardprint?
using System;   
  
namespace TestUse   
{   
    /// <summary>   
    /// Summary description for Muliti.   
    /// </summary>   
    public class Muliti   
    {   
        public Muliti()   
        {   
            //   
            // TODO: Add constructor logic here   
            //   
        }   
  
        private string[] test1;   
        private object[] test2;   
        private int[]    test3;   
  
        public object this[string arrname,int index]{   
            get{   
                switch(arrname){   
                    case "test1":return test1[index];   
                    case "test2":return test2[index];   
                    case "test3":return test3[index];   
                    default:return null;   
                }   
            }   
            set{   
                switch(arrname)   
                {   
                    case "test1":test1[index]=value.ToString();break;   
                    case "test2":test2[index]=value;break;   
                    case "test3":test3[index]=(int)value;break;   
                    default:break;   
                }   
            }   
        }   
  
        public void setUpArray(){   
            test1 = new string[3];   
            test2 = new object[2];   
            test3 = new int[4];   
        }   
    }   
}  
using System;
namespace TestUse
{
    /// <summary>
    /// Summary description for Muliti.
    /// </summary>
    public class Muliti
    {
        public Muliti()
        {
            //
            // TODO: Add constructor logic here
            //
        }
        private string[] test1;
        private object[] test2;
        private int[]    test3;
        public object this[string arrname,int index]{
            get{
                switch(arrname){
                    case "test1":return test1[index];
                    case "test2":return test2[index];
                    case "test3":return test3[index];
                    default:return null;
                }
            }
            set{
                switch(arrname)
                {
                    case "test1":test1[index]=value.ToString();break;
                    case "test2":test2[index]=value;break;
                    case "test3":test3[index]=(int)value;break;
                    default:break;
                }
            }
        }
        public void setUpArray(){
            test1 = new string[3];
            test2 = new object[2];
            test3 = new int[4];
        }
    }
}
 
view plaincopy to clipboardprint?
private void button1_Click(object sender, System.EventArgs e)   
  {   
      Muliti testm = new Muliti();   
      testm.setUpArray();   
      testm["test1",0]="test1-0";   
      testm["test2",0]= "test2-0";   
      testm["test3",0]= 3;   
      MessageBox.Show((string)testm["test1",0]);   
      MessageBox.Show((string)testm["test2",0]);   
      MessageBox.Show("" + testm["test3",0]);   
  }  
      private void button1_Click(object sender, System.EventArgs e)
        {
            Muliti testm = new Muliti();
            testm.setUpArray();
            testm["test1",0]="test1-0";
            testm["test2",0]= "test2-0";
            testm["test3",0]= 3;
            MessageBox.Show((string)testm["test1",0]);
            MessageBox.Show((string)testm["test2",0]);
            MessageBox.Show("" + testm["test3",0]);
        }
 
这样 加个判断就行了 有时候头脑还真的迷糊 想了半天还是没想起来。
                    
                
                
            
        
浙公网安备 33010602011771号