C#之Lambda

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);

以上代码分别输出如下


lambda结果.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容