将条件作为参数传递

Vit*_*meo 6 .net c# conditional boolean

是否可以将条件作为参数传递给操作?

这是一个例子.

public void Test(Action action, Condition condition);
Run Code Online (Sandbox Code Playgroud)

...

Test( () => Environment.Exit(0), () => variable == variable2 );
Run Code Online (Sandbox Code Playgroud)

Chr*_*ain 16

尝试将第二个参数作为类型传递Func<Boolean>.代码应该像你在问题的第二部分中那样工作:

public void Text(Action action, Func<Boolean> condition) {
    if (condition()) action();
}
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,您在使用示例中将要做的是创建一个包含捕获的变量variable和variable2 的Closure.在以这种方式使用闭包之前,您应该了解闭包的含义.