读书人

求一个方法多谢

发布时间: 2011-12-23 23:32:01 作者: rapoo

求一个方法,急,谢谢!
有三个类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在这里,用事件响应的方法
}
}

读书人网 >C#

热点推荐