C# 创建可调用对象 PHP

C# Creating callable like PHP

我过去做过很多 PHP 并且你可以通过代码作为参数传递,如果我是对的,它被称为 callable .

这是它的样子:

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

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

如果我没理解错的话,你想将一个可调用函数传递给另一个方法?最简单的方法是使用 Func or Action 参数:

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

然后调用它:

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

Action 表示不 return 任何值的函数,而 Func 是 return 值的函数。

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

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

我发布这个问题后很快找到的awnser:

用法:

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

方法:

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