读书人

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

发布时间: 2013-09-18 14:17:40 作者: rapoo

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);

读书人网 >C#

热点推荐