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

求一个方法,多谢

2011-12-23 
求一个方法,急,谢谢!有三个类A,B,C 其中B中有一个方法,C类实现了该方法,如何在A类中通过B类调到C类的这个

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

热点排行