执行给定方法的 C# 方法

标签 c# delegates func

我正在尝试编写以下内容:我想编写一个方法“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/

相关文章:

C#如何用单个定时器通知其他类?

c# - 应该在引发事件的类内部还是外部声明委托(delegate)?

python - 使用“函数”中的 "for loop"打印数据帧每列的最小值/最大值

c# - 如何在 GTK Sharp 中拥有(半)透明背景?

c# - 将目标放置在嵌套控件中

c# - Selenium ChromeDriver (C#) 仅在 Visual Studio Debug模式下崩溃

c# - 查找 Func 委托(delegate)的调用方法的名称

c# - 如何遍历列表以便最后一个迭代步骤返回到第一个对象?

delegates - ImageMagick 不会将 Ghostscipt 显示为委托(delegate)

c# - 对长嵌套调用中的任何属性进行空检查