我知道在 php 中你可以拨打这样的电话:

$function_name = 'hello';
$function_name();

function hello() { echo 'hello'; }

这在 .Net 中可能吗?

最佳答案

是的。您可以使用反射。像这样的东西:

Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(TheCommandString);
theMethod.Invoke(this, userParameters);
使用上面的代码,调用的方法必须具有访问修饰符 public 。如果调用非公共(public)方法,则需要使用 BindingFlags 参数,例如BindingFlags.NonPublic | BindingFlags.Instance:
Type thisType = this.GetType();
MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);
theMethod.Invoke(this, userParameters);

关于c# - 在 C# 中从字符串调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/540066/

10-16 13:43