【问题标题】:C# Creating callable like PHPC# 像 PHP 一样创建可调用对象
【发布时间】:2016-03-20 18:56:53
【问题描述】:

我过去做过很多 PHP,在那里你可以将低谷代码作为参数传递,如果我是对的,它被称为 callable

这就是它的样子:

METHOD('Parameter', function() { 
echo "Hey!";
});

这在 C# 中可能吗?因为我很想这样做。将该函数作为方法中的参数执行。

【问题讨论】:

    标签: c# methods callable


    【解决方案1】:

    如果我理解正确,您想将可调用函数传递给另一个方法吗?最简单的方法是使用FuncAction 参数:

    void MyMethod(Action<string> passedInFunc)
    {
        passedInFunc("Hey");
    }
    

    然后调用它:

    MyMethod(s => 
    {
        Console.WriteLine(s);
    });
    

    Action 表示不返回任何值的函数,而 Func 是确实返回值的函数。

    如果您不想向 Action 传递任何参数,可以使用 non-generic 版本。

    最后,这些只是delegates,因此您也可以定义自己的自定义委托并传递那个。

    【讨论】:

    • 谢谢,在我将它发布到我的 LambaExpression 游戏之后,我想通了。但是找不到这个问题。我自己会遮光的。无论如何,谢谢!
    • @joey FYI 在顶部栏的中间,您可以单击您的头像访问您的个人资料。在那里您可以找到您提出的问题。
    【解决方案2】:

    发布此问题后,我很快找到了我的遮阳篷:

    用法:

    TestMethod ("Lambda", () => {
      Console.WriteLine("Expression");
    });
    

    方法:

    public void TestMethod (string name, Action action) {
     if(name == "Lambda") {
       action.Invoke ();
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多