将lambda表达式作为函数参数传递

use*_*er3 2 c# lambda

类似函数bool decide(bool x)可以作为参数传递给方法作为仿函数:

foo(Func<bool,bool> lambda)
Run Code Online (Sandbox Code Playgroud)

我们可以使lambda表达式()=>{int x=8; x=x+2;}不需要任何东西并返回任何内容.让我说我想将这样的函数作为参数传递给另一种方法bar然后怎么做呢?

Far*_*yev 8

Action不是Func.如果您不想返回值,那么您必须使用Action.

例如:

Action<int> example1 = (int x) => Console.WriteLine("Write {0}", x);
example1.Invoke(1); // or example1(1);

Action example3 = () => Console.WriteLine("Done");
example3.Invoke(); // or example3();
Run Code Online (Sandbox Code Playgroud)