读书人

能不能通过字符串传递函数名称动态调用

发布时间: 2012-01-30 21:15:58 作者: rapoo

能不能通过字符串传递函数名称动态调用指定的函数
问题描述
我在类里定义了许多函数,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();
}

读书人网 >C#

热点推荐