如何根据传入的方法名称(字符串)调用相应方法

orxor 2011-09-01 08:54:21

pulibc InvokeMothod(String ClassName, String MethodName)
{
调用ClassName类的MethodName方法
}

谢谢!


委托可以实现吗?
...全文
280 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
orxor 2011-09-01
  • 打赏
  • 举报
回复
上面错了。重来


/// <summary>
/// the English speaker.
/// </summary>
/// <param name="name">The name.</param>
public void EnglishSpeaker(string name)
{
Console.WriteLine(
string.Format("Hello my name is {0} and I am English speaker.\n", name));
}

/// <summary>
/// the Chineses speaker.
/// </summary>
public void ChineseSpeaker(string name)
{
Console.WriteLine(
string.Format("您好我的名字叫{0},我是讲普通话的。\n", name));
}

/// <summary>
/// Define speak delegate.
/// </summary>
/// <param name="name"></param>
private delegate void SpeakDelegate(string name);


/// <summary>
/// The base say function.
/// </summary>
/// <param name="name">The name.</param>
/// <param name="speaker">The speaker.</param>
private static void Say(string name, SpeakDelegate speaker)
{
///Inoke the speaker function.
speaker(name);
}


///传递函数名进行委托方法绑定
Program.Say("钧航", ChineseSpeaker);
Program.Say("JK.Rush", EnglishSpeaker);






上面代码是正常的一个委托实例。
我想这样实现,后面的委托函数名 也是字符串,动态调用,怎么实现?
Program.Say("钧航", "ChineseSpeaker");
orxor 2011-09-01
  • 打赏
  • 举报
回复
举个例子


/// <summary> /// the English speaker. /// </summary> /// <param name="name">The name.</param> public void EnglishSpeaker(string name) { Console.WriteLine( string.Format("Hello my name is {0} and I am English speaker.\n", name)); } /// <summary> /// the Chineses speaker. /// </summary> public void ChineseSpeaker(string name) { Console.WriteLine( string.Format("您好我的名字叫{0},我是讲普通话的。\n", name)); }
PerDign 2011-09-01
  • 打赏
  • 举报
回复
委托可以实现 只不过 既然是委托何必调用呢?
bdmh 2011-09-01
  • 打赏
  • 举报
回复
绝对的反射
比如
this.GetType().GetMethod("aaaaa"),这个找到this的aaaaa方法,然后去invoke
wuhuabucai 2011-09-01
  • 打赏
  • 举报
回复
根据ClassName 创建实例
获取ClassName实例的 的Type
根据MethodName反射出Method
调用
潘少博 2011-09-01
  • 打赏
  • 举报
回复
反射!
orxor 2011-09-01
  • 打赏
  • 举报
回复
再顶,在线等

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧