我过去做了很多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 ();
}
}