知道一个函数的名字 比如"Foo1",是string类型的。现在我要用这个string类型的函数名"Foo1",调用同名的函数Foo1();在C#中如何实现这个功能?? 如果是类型的话还好实现可以用Activator或者Assembly,不知道这两者能否用在函数上。有没有好的方法,麻烦高手给出简单的示例代码。不然我就只能用最笨的判断方法了。
switch(fooname)
{
case "Foo1":
Foo1();
break;
case "Foo2":
Foo2();
break;
......
}
switch(fooname)
{
case "Foo1":
Foo1();
break;
case "Foo2":
Foo2();
break;
......
}
工厂模式, 那得分多少个类
反射也行 速度上就慢过switch了
需要反射的例子吗?
using System.Reflection; Type t = this.GetType();
MethodInfo mi = t.GetMethod(fooname, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
if (mi != null)
mi.Invoke(this, null);由于不知道你具体的函数定义,以上代码仅供参考
btn.click+=new eventhandler(Foo1());
参考