Lambda

1.lambda就是一个匿名方法
2.委托约束
3.匿名类,实际框架编译的时候自动声明了一个类,但是类的属性都是只读的,只能一次性赋值。
4.var,类型推断,编译器自动识别变量类型。只能声明局部变量。多适用于系统类型,程序员不知道的类型,比如匿名类。
5.扩展方法:静态类静态方法,静态方法第一个参数类型为要扩展的类型名称,类型名前加this。实例方法优先级高于扩展方法:如果重名,会优先调用实例方法,所以扩展方法1不能滥用,2考虑重名问题。
6.Linq:实质上就是把一个匿名泛型委托当做一个参数传入使用了,匿名泛型委托封装一个where判定的逻辑。
7.linq本质 where扩展方法的自定义实现:
     public static IEnumerable<TSource> myWhere(this IEnumerable<TSource> source,Func<TSource,bool> predicate)
     {
          List<TSource> listRel=new List<TSource>();
          foreach(var item in TSource){
               if(predicate.Invoke(item)){
                    listRel.Add(item);
               }
          }
     }
8.linq语法糖:
     var list = from s in studentList
                where s.Age<30
                select s;
9.用户界面的东西,都要try catch,防止程序死掉或直接把异常抛给用户。
posted @ 2017-10-22 22:25  chenxizhaolu  阅读(222)  评论(0编辑  收藏  举报