从字符串C#中获取代码

本文关键字:获取 取代码 字符串 | 更新日期: 2023-09-27 18:27:47

我有一个字符串,需要将这个字符串转换为代码。

string s = "Method1";
string s_1 = "()";
s = s + s_1;
switch ((irrelevant))
{
    case 1:      
       (i need the string to code here to enable the Mehod1)
       break;
}
void Method1()
{
}

有办法做到这一点吗?

从字符串C#中获取代码

使用反射,您可以通过名称(不带括号的名称)和名称来调用方法。

如果只是需要执行名为的方法,则必须接受此解决方案

例如,如果您的方法在名为ClassWithMethods 的同一类中被命名为Method1

Type type = typeof(ClassWithMethods);
MethodInfo methodInfo = type.GetMethod("Method1");
result = methodInfo.Invoke(this, null);

invoke的第一个参数我使用这个,因为它运行的是相同的intance,但这个参数要求调用方法或构造函数的对象。如果方法是静态的,则会忽略此参数。如果构造函数是静态的,则此参数必须为null或定义构造函数的类的实例