Linq学习系列-----1.1 Lambda表达式介绍

时间:2023-08-12 21:36:38

 1.1  Lambda表达式介绍

下图就是一个典型的Lambda表达式。

Linq学习系列-----1.1 Lambda表达式介绍

instance:输入参数

=>:Lambda操作符

instance.MemoryCount>=20*1024; :表达式语句块

Lambda操作符可以读作"goes to",操作符的左边用来输入参数,右边是表达式块或语句。

 1.2  Lambda表达式实例

Linq学习系列-----1.1 Lambda表达式介绍

表达式1:有参数的隐式类型,表达式方法体

表达式2:有参数的隐式类型,语句方法体

表达式3:有参数的显式类型,表达式方法体

表达式4:有参数的显式类型,语句方法体

表达式5:有多个参数的表达式方法体

表达式6:无参数的表达式方法体

表达式7:无参数的表达式方法体

1.3  Lambda表达式与系统匿名委托的兼容

Linq学习系列-----1.1 Lambda表达式介绍

表达式1:无参数

表达式2:隐式类型的字符参数

表达式3:显示类型的字符参数

表达式4:两个隐式类型的int参数

Action与Func匿名委托,这里不具体介绍,具体学习委托即可。委托说白了就是方法的指针。可能我是学C++出身,所以“方法的指针”一言即可概括。

1.4  Lambda与匿名方法比较

我们可认为Lambda表达式是匿名方法的一个超集,除了实现匿名方法的功能之外,还存在以下功能:

1.Lambda表达式能够推测出参数的类型,因此程序中无需显式声明

2.Lambda表达式支持用语句块或表达式作为方法体,语法上比匿名方法更加灵活,匿名方法体只能作为语句块。

3.在以参数形式传递时,Lambda表达式能够参数到参数类型推断以及对重载方法的选择中。

4.带有表达式的Lambda表达式能够转化为表达式树。