日期:2014-05-19  浏览次数:20908 次

能不能通过字符串传递函数名称动态调用指定的函数
问题描述
我在类里定义了许多函数,getnextid(),getusername(int   id),getage(int   id)......

我想通过字符串的方式来调用这些函数,如
string   s;
s= "getusername(28) ";
Console.Writeline(execute(s));//execute()是我想像出来的,
而得到getusername(28)的值,
execute()是我想像出来的,C#中有没有这样的功能能实现这样的功能

------解决方案--------------------
using System.Reflection;

public string getusername(int id)
{
return "{ " + id + "} ";
}

private void button1_Click(object sender, EventArgs ce)
{
MethodInfo vMethodInfo = GetType().GetMethod( "getusername ");
if (vMethodInfo == null) return;
Text = vMethodInfo.Invoke(this, new object[] { 28 }).ToString();
}