C#之Lambda可以理解为一个匿名函数
lambda 表达式的输入参数括在括号中,
1.使用空括号指定零个输入参数
Action line = () => Console.WriteLine();
2.lambda 表达式只有一个输入参数,则括号是可选的
Func<double, double> cube = x => x * x * x;
3.两个或更多输入参数使用逗号加以分隔
Func<int, int, bool> testForEquality = (x, y) => x == y;
我们定义一个delegate和一个回调函数来做演示
private delegate int Callback(int a, int b);
private void InvokeCallback(int a,int b,Callback callback)
{
int ret = callback.Invoke(a, b);
Console.WriteLine($"a = {a},b={b},ret = {ret}");
}
1、正常使用匿名delegate调用
InvokeCallback(33,44,delegate (int a,int b)
{
return a + b;
});
2、使用lambda调用
InvokeCallback(22,33,(a, b) =>
{
return a + b;
});
3、lambda作为语句调用
Callback callback = (a, b) =>
{
return a + b;
};
InvokeCallback(11,22,callback);
4、lambda作为表达式调用
Callback callback2 = (a, b) => a * b;
InvokeCallback(55, 66, callback2);
以上代码分别输出如下