高阶函数返回函数什么都不返回

Lav*_*let 2 c#

在C#中如何定义返回函数的函数?像这样的东西:

class X
{
    public Func<void> GetFuncReturningVoid() { ... }
}
Run Code Online (Sandbox Code Playgroud)

dah*_*byk 8

一个没有返回的函数是一个Action.使用lambda表达式,你可以这样写:

Action GetFuncReturningVoid() {
    return () => Console.Writeline("my action");
}
Run Code Online (Sandbox Code Playgroud)

如果你需要接受论点......

Action<int, int> GetActionWithArguments() {
    return (int x, int y) => Console.Writeline(x * y);
}
Run Code Online (Sandbox Code Playgroud)

或者您可以让编译器推断出类型:

Action<int, int> GetActionWithArguments() {
    return (x, y) => Console.Writeline(x * y);
}
Run Code Online (Sandbox Code Playgroud)