Lambda 表达式是一种语法,也就是大家说的语法糖,但是真的很甜,来看看它为我们做了什么。
我们使用前面委托的例子:
客户端调用:
我们用Lambda表达式来实现:
定义委托:
Func 是C#内置的一个带返回值的委托,相当于 public delegate T1 Method(T2 t2);这里的T1和T2 可以是任何类型和任意个数。
客户端调用:
用了Lambda 表达式后我们的代码简洁了不少。
接下来,我们继续使用Lambda 来简化代码:
Action是C#内置的一个无返回值的委托,相当于 public delegate void Method(T2 t2);这里的T2 可以是任何类型和任意个数。
看到差异没,我们最后只用了几行代码就完成了委托的定义和调用,这一切的背后都是编译器帮我们生成了代码,完整的代码就是我们最初定义时的样子。
Lambda 表达式的定义为:圆括号 加 等号 加箭头 加大括号即:()=> {} ,
圆括号表示方法的参数类型,如果是无参的用空的圆括号:(),带参的需要把参数定义在括号内(name),同时在定义时需要指明类型,等号加箭头是表达式必须的,箭头右边是方法体,圆括号和大括号是可以省略的。
Lambda 表达式能简化委托、事件、函数的定义,提高了编码效率。