第十二节 委托、Lambda表达式、LINQ 串讲

发布时间 2023-06-08 08:28:55作者: 不爱菠萝的菠萝君

视频链接:刘铁猛老师的《C#语言入门详解》
https://www.youtube.com/watch?v=EgIbwCnQ680&list=PLZX6sKChTg8GQxnABqxYGX2zLs4Hfa4Ca

委托

什么是委托?

是一种特殊的类型,用来包装不同的方法

委托类型是怎么声明出来的?

示例1:简单演示

image.png
image.png

示例2:多播委托

image.png
image.png

示例3:有返回值的委托

image.png
image.png

泛型委托

示例1:简单演示

image.png

我们必须自己创建委托类型吗?

微软的类库中定义了2种委托,Action【无返回值的】 和 Func 【有返回值的】

Action简单示例

image.png

Func简单示例

image.png

泛型委托的类型参数推断

根据方法返回值类型,参数列表的参数的值直接推断参数数据类型,所以不用写数据类型(对于某些参数)

Lambda表达式

方法与Lambda表达式之间的关系

作用:
(1)匿名方法
(2)Inline方法 -- 边声明边调用
示例:
image.png
image.png

如何把一个Lambda表达式赋值给一个委托类型变量

语法糖:
image.png

如何把一个Lambda表达式“喂”给一个委托类型参数

示例:
image.png
image.png

LINQ

新建项目,新建文件夹Model,里面添加一个item,选择Data栏,选择ADO.NET Entity Data Model

示例1 根据方法委托的参数类型,书写对应的Lambda表达式

image.png
image.png

示例2 All、Any ...

image.png
image.png

示例3 GroupBy...

image.png
image.png