1.自动属性
(未简化:手写私有变量和公有属性;简化:空属性,编译器会自动生成对应私有字段)
2.参数默认值和命名参数
①可为方法和有参属性指定默认值
②有默认值的参数必须定在没有默认参数值之后
③默认参数为常量
④ref/out不能指定默认参数
3.类型实例化
4.集合
①初始化List集合的值
②取list集合中的值
5.隐式类型(var)
1.定义时必须初始化;
2.初始化完成后不能赋初始值不同类型的值;
3.var要求为局部变量;
4.使用var定义变量和object不同,效率上和使用强类型方法定义变量完全一样
6.匿名方法
匿名类型的限制:
1.匿名类型不支持事件,自定义方法和自定义重写;
2.匿名类型和隐式封闭的;
3.匿名类型的实例创建只使用默认构造函数;
4.匿名类型没有提供可供控制的类名称;(使用var定义)
7.合并运算法(??)
合并运算符使用??表示,当进行转换时,如果可空类型值为null,则使用默认值
8.Lambda表达式
最基本的表达式语法
例子:(int x)=>{return x+1}
说明:参数列表中的参数类型可以是明确类型或推断类型,若为推断类型,则参数的数据类型由编译器根据上下文自动推断;
若参数列表只包含一个推断类型参数
例子:x=>{return x+1}
说明:X的数据类型是可以根据上下文推断出来的
若方法体只包含一条语句时
例子:(int x)=>x+1
说明:方法体中只包含一条语句
多参数,推断类型参数列表,表达式方法体
例子:(x,y)=>x*y
无参数,表达式方法体
例子:()=>Console.WriterLine()
多参数,推断类型参数列表,多语句方法体,需要使用{}
例子:(x,y)=>{Console.WriterLine(x); Consoloe.WriteLine(y);}