高分求解函数调用问题

DJDJ 2003-07-29 11:50:18
在已知函数名称的字符串的前提下,
要完成俩个功能,
先判断该函数是否存在,
再调用该函数.

不知哪位可解该问题,
小弟跪求,
望能给简单例子!
...全文
18 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
panyee 2003-07-29
  • 打赏
  • 举报
回复
snof(雪狼)升星了, 散分吧
雪狼1234567 2003-07-29
  • 打赏
  • 举报
回复
try
{
GetData(); //函数存在
}
except
{
函数不存在
}
oh_love 2003-07-29
  • 打赏
  • 举报
回复
System.Reflection.MethodInfo info = System.Type.GetType("ClassName").GetMethod("MethodName" );
info.Invoke(...);
飞不动 2003-07-29
  • 打赏
  • 举报
回复
无聊的问题,没有任何实用价值
vielili 2003-07-29
  • 打赏
  • 举报
回复
雪狼的做法不成立.
夕夕公主 的做法正确. 如果调用方法所在的类在同一个assembly里的话, 直接使用Type type = typeof(类)就可以了, 如果已经有类的实例, 直接用 [instance].Type 可以得到 type.
liduke 2003-07-29
  • 打赏
  • 举报
回复
收藏
brightheroes 2003-07-29
  • 打赏
  • 举报
回复
从理论的高度上来说,夕夕公主的做法非常好。
从实用的角度上说,还是雪狼的吧。
雪狼猩猩了,散分吧。
xixigongzhu 2003-07-29
  • 打赏
  • 举报
回复
光知道函数的名字是得不到方法的信息的,必须知道这个函数所在的类及这个类所在的程序集。也就是必须告知程序集的全名(FullName的格式)或者文件路径名,然后:
Assembly ass = Assembly.Load(fullName);或者:
Assembly ass = Assembly.LoadFrom(filename);//filename可以带路径。

这个函数所在的类的名称typeName
Type t = ass.GetType(typeName, false, true);

然后函数的名称(如果函数有重载的话不能这样用,否则有异常):
MethodInfo mi = t.GetMethod(methodname);

判断函数是否存在:
if (mi != null) {
//存在
}
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-07-29 11:50
社区公告

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