var、扩展方法、LINQ

1.var推断类型

  只能定义局部变量,不能定义成员变量

  定义的时候必须同时完成初始化,不能使用var定义变量为null

  var本身不是一个新类型,只是用来修饰可以推断出具体类型的局部变量

  从IL编译的角度来讲,没有任何区别

2.匿名类

  直接使用new关键字创建对象,使用var定义对象属性

  而不需要提前编写类的成员,并且只能添加对象的属性

1 var objPerson=new
2 {
3    Name="小王",
4    Age=25,
5    ClassName="软件1班"  
6 };
匿名内

3.扩展方法

  扩展方法必须在静态类中定义

  扩展方法是静态方法

  类本身的方法与扩展方法重名时,类本身的方法被优先使用

  第一个参数前加关键字this,this后的类型表示为所有的此种类型添加扩展方法4

  扩展方法内如果只有一个参数,它不是参数,代表当前变量

  扩展方法也可以重载

  扩展方法不要过多使用

4.扩展方法的应用

  如果想为一个封装好的密封类添加一个方法,可以用扩展方法

5.扩展方法的定义

  不带参数的扩展方法:  static 方法名 (this 目标类型 目标类型参数)

  带参数的扩展方法定义:   static 方法名 (this 目标类型 目标类型参数, 参数类型1 参数名1,,...... )

 1 public static int GetAvg(this int sum)
 2 {
 3       return sum / 5;
 4 }
 5 
 6 public static string StuInfo(this string name)
 7 {
 8       return string.Format("{0}你好,你的5门平均成绩为:", name);
 9 }
10 
11 public static string WelcomeStu(this Student stu)
12 {
13       return "欢迎你:" + stu.StuName;
14 }
15 
16 public static string WelcomeStu(this Student stu,int age)
17 {
18       return string.Format("姓名{0},年龄{1}", stu.StuName,age);
19 }
扩展方法

猜你喜欢

转载自www.cnblogs.com/yangmengke2018/p/10922329.html