首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 反照,为什么调用不了传入的对象的方法

2013-09-18 
C# 反射,为什么调用不了传入的对象的方法本帖最后由 u012117131 于 2013-09-15 18:29:34 编辑public abstr

C# 反射,为什么调用不了传入的对象的方法
本帖最后由 u012117131 于 2013-09-15 18:29:34 编辑 public abstract class D{
  class A 
  {
    D sub;
    public A(D d)
    {
      sub = d;
    }
    public void aa(P p)
    {
      sub.aa(p); //这里调用的是D的aa方法,,为什么?????????想要的是调用 B.aa    
    }
  }

  public void aa()
  {}
}

class B:D
{
  public void aa(P p)
  {}
}

class C
{
  P p =new P(); // 数据参数
  B b=new B(); 
  D.A a=new D.A(b); // 这里传入的是一个对象
  a.aa(p); 
}

在java里这里调用的方法是 B.aa,在C#里为什么调用的是D的aa方法?
还有一个很重要的就是传入的对象问题,返回的一直是空值,,, java c# 反射 对象
[解决办法]
要么将P定义成结构体(struct)
要么拷贝:
P newp = new P();
newp.xxx = p.xxx;
...
dd.aa(newp); 

热点排行