需要将 class a ,b的 对象填入数组,然后使用数组调用他们的方法,代码如下
   class Program
    {
        static void Main(string[] args)
        {
            Object[] j = new Object[10];
            c k=new c();
            j[0] = k;
         这里K可以带出ak,但j[0]却不可以,如何实现?             b bb=new b();
             j[1] = bb;    
                    
        }
    }
    class c
    {
        public void ak()
        {
        }
    }
    class b
    {
        public void bk()
        {
        }
    }

解决方案 »

  1.   

    他是一个object 类型,转换试一下!
     
    a a1= j[0] as a;
    a.ak();
      

  2.   

    强制转换一下即可。
     Object[] j = new Object[10];
                c k = new c();
                j[0] = k;            c cc = j[0] as c;
                cc.ak();
      

  3.   

    我想用 j[0].ak,不知道可以么?
      

  4.   

    怎么样才可以  j[0].ak?因为前面  c k=new c()
              j[0]=k;
     我就想想用 j[0].ak,不然我直接用k.ak就好啊
      

  5.   

    你可以用List,数组只提供地址指向,不提供类型说明。
      

  6.   

    List<c> li=new List<c>();
     c k=new c();
     li.Add(k);
     li[0].ak();
      

  7.   

    这个数组里面要有 class a  和 class b,能达到这个效果么?
     j[0]=new a();
    j[i]=new b()j[0].ak();
    j[1].bk();
      

  8.   

    楼主按您的要求的话,必须进行类型转换,否则无法直接调用对应的方法,
    不过可以让 a b c继承同一个父类,在父类中定义一个抽象方法,在子类中重写此方法,只不过这样的话方法名就都相同了