我知道在 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/