我需要调用一个带有参数作为字符串的函数。请看下面给出的示例:注意"method(parameter1,parameter2)"
包含在""
中。
string methodName = "method(3,4)"
string f = methodName ;
public string method(int one, int two){
return "hi";
}
以上是预期结果。我将调用带有字符串方法名称及其后的参数的函数:
到目前为止,我已经尝试过:
我尝试使用反射,但未调用该方法。
如何解决此问题?
还有其他方法吗?
Type type = typeof(MyClass);
var method = type.GetMethod("method");
MyClass cc = new MyClass();
string re= (string) method.Invoke(cc, new object[] {1,3});
答案 0 :(得分:0)
这是一个如何使用反射调用方法的示例。
如果要作为字符串的一部分处理方法的输入,则必须在调用方法时解析字符串的该部分,并将值作为实例传递给对象数组。
class Program
{
static void Main(string[] args)
{
var m = typeof(Program).GetMethod("PrintValue");
var i = new Program();
m.Invoke(i, BindingFlags.Default, null, new object[] {42}, CultureInfo.CurrentCulture);
}
public void PrintValue(int i)
{
Console.WriteLine(i);
}
}