求一个方法,急,谢谢!

fangdou 2009-03-10 11:14:19
有三个类A,B,C 其中B中有一个方法,C类实现了该方法,如何在A类中通过B类调到C类的这个方法.
其中A不能直接调用C.
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangdou 2009-03-11
  • 打赏
  • 举报
回复
谢谢,问题已结决
endlessw 2009-03-10
  • 打赏
  • 举报
回复
C不继承b怎么实现方法?
学习中。。。
fangdou 2009-03-10
  • 打赏
  • 举报
回复
这个方法还是直接调用了C
a aa=new a();
a.invokemethod(new c());
前提是不能直接调C
ztenv 2009-03-10
  • 打赏
  • 举报
回复
可类c不继承类b,而是b组合了类c,这样a和c 一点关系都没有;
ztenv 2009-03-10
  • 打赏
  • 举报
回复
多态问题:

class b
{
public virtual void fun1(){Console.Writeln("B");}
}

class c:b
{
public override void fun1(){Console.Writeln("c");}

class A
{

public void InvokeMethod(b bb)
{
bb.fun1();
}
}

/////调用

a aa=new a();
a.invokemethod(new c());
fangdou 2009-03-10
  • 打赏
  • 举报
回复
就是A想通过B访问C
Comer 2009-03-10
  • 打赏
  • 举报
回复
没明白啥意思
ztenv 2009-03-10
  • 打赏
  • 举报
回复

class b
{
public virtual void fun1(){Console.Writeln("B");}
}

class c:b
{
public override void fun1(){Console.Writeln("c");}

class A
{
public event EventHandler InvokedMethod;
public void InvokeMethod()
{
EventHandler eh=InvokedMethod;
if(eh!=null)
{
eh(this,EventArgs.Empty);
}
}
}

//调用:
void invoke()
{
A a=new A();
a.InvokedMethod+=new EventHandler()..
{
调用C在这里,用事件响应的方法
}
}
endlessw 2009-03-10
  • 打赏
  • 举报
回复
namespace ConsoleApplication1
{
class Test
{
static void Main()
{
a.ReturnC();
}
}
public static class a
{

public static Type ReturnC()
{
Assembly ass = Assembly.Load("ConsoleApplication1");//取得程序集
Type t = typeof(c);//获取类型
c c = (c)ass.CreateInstance(t.FullName);//创建对象
return (Type)t.GetMethod("xxx").Invoke(c, null);//调用实例方法
}
}
public abstract class b
{
//抽象类
public abstract void xxx();
}

public class c : b
{
//实现
public override void xxx()
{
Console.WriteLine("hgfhgf");
}
}
}




用反射做,不知道对不对,学习下

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧