我正在尝试编写以下内容:我想编写一个方法“A”,它将另一个方法“B”作为参数,以及该方法 B 的未知数量的参数。(params object[] args) .现在,在方法 A 中,我想使用参数 args 调用 B。 B 现在将返回一个我希望 A 也返回的对象。
这听起来有点奇怪,因此我将添加一些示例代码:
public object A(Func<object> B, params object[] args)
{
object x = B.Method.Invoke(args);
return x;
}
问题是 Func 不是那样工作的。有谁知道这样做的方法吗?
问候, 基督徒
最佳答案
void Main()
{
Func<int> m1=()=>1;
Console.WriteLine(A(m1));
Func<int,int> m2=i=>i;
Console.WriteLine(A(m2,55));
}
object A(Delegate B,params object[] args)
{
return B.Method.Invoke(B.Target,args);
}
...再见类型安全
关于执行给定方法的 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4780881/