我过去做过很多 PHP,在那里你可以通过代码作为参数传递,如果我是对的,它被称为 callable。
这是它的样子:
METHOD('Parameter', function() {
echo "Hey!";
});
这在 C# 中可行吗?因为我很想那样做。将该函数作为方法中的参数执行。
最佳答案
如果我没理解错的话,你想将一个可调用函数传递给另一个方法?最简单的方法是使用 Func或 Action参数:
void MyMethod(Action<string> passedInFunc)
{
passedInFunc("Hey");
}
然后调用它:
MyMethod(s =>
{
Console.WriteLine(s);
});
Action 表示不返回任何值的函数,而 Func 是返回值的函数。
如果您不想向您的操作传递任何参数,则有一个 non-generic您可以使用的版本。
最后,这些只是delegates ,因此您还可以定义自己的自定义委托(delegate)并改为传递该委托(delegate)。
关于C# 创建像 PHP 一样的可调用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118101/