求一个方法,急,谢谢!
有三个类A,B,C 其中B中有一个方法,C类实现了该方法,如何在A类中通过B类调到C类的这个方法.
其中A不能直接调用C.
------解决方案--------------------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");
}
}
}
用反射做,不知道对不对,学习下
------解决方案--------------------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在这里,用事件响应的方法
}
}