C# 创建像 PHP 一样的可调用对象



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

这是它的样子:

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

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

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

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

然后称之为:

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

操作表示不返回任何值的函数,而 Func 是返回值的函数。

如果不想将任何参数传递给操作,则可以使用非通用版本。

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

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

用法:

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

方法:

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

最新更新