自动属性、隐式类型var、初始化器、隐式类型、扩展方法 委托、匿名方法、lambda表达式、内置委托
隐式类型 var 一 般是 配合 匿名类型来用的 。
ef 会用到的 查询 linq查询 。linq查询的时候,大量用到匿名类型
问:为什么定义类?
答:完成对数据的封装。
这些类从哪来,不是凭空出现。是和数据库的表对应的 。
a.对于必须值,用构造方法完成初始化
b.对于非必须值,使用初始化器。
集合初始化器中 嵌套着对象初始化器
当类型 只使用一次的时候:我们可以使用匿名类型。
就是个简化形式。匿名类型是个语法糖。
因为类型只使用一次,我们不需要专门的声明一个类型。
在使用的时候,写这个类型就行了。
有一个问题:
这个类型没有名字,那么如何声明一个变量,指向这个类型的对象?
答:使用var 。
虽然我们写的时候,匿名类型是没有名字的
但是在编译的时候,这个类型是实实在在存在的
匿名类型的使用,借助了隐式类型var、初始化器
匿名类型,可以定义数据成员、定义不了函数成员
匿名类型帮助我们进行 数据的快速封装。
代码实现
4.扩展方法
扩展方法的定义:为一个类无侵入式的扩展一个新的方法。
后面我们会大量使用到扩展方法。
代码实现:
5. 委托
委托是个类型。 和 class 一个级别的
数据的类型:类和接口。
方法的类型:委托。
lambda表达式的本质:是一种 对 匿名方法的简写。
lambda 表达式的作用: 完成 对委托的赋值 。
lambda 也是一种语法糖 。
有了委托之后,我们可以将方法,作为方法的参数进行传递。
linq查询,这个用的非常多。
代码实现: