标签:des style class blog code color
1 var i1 = 6; 2 //C#中的var是一个类型的简写,是根据右边进行类型的“推导” 3 //可以根据6推断出来var代表int,只是编译器自动帮我们把var换成int 4 5 //i1 = "bbbb"; //不可以 6 7 object o1 = 6; 8 o1 = "bbb";//可以,object可以指向任意类型 9 10 11 //var专门为匿名类型而生 12 var p = new { Age = 5, Name = "tom" };//声明匿名类型的两个属性 13 //并且创建匿名类型的一个对象,然后为对象的各个属性赋值(通过构造函数) 14 Console.WriteLine(p.Name);//p是匿名类型的对象 15 16 //成员一致的匿名类型会重用 17 //编译器只生成了两个类,p和p1共用一个,p2单独用一个 18 var p1 = new { Age = 6, Name = "jim" }; 19 20 //由于参数类型不一致 21 var p2 = new { Father = "tom", Mother = "lucy" }; 22 23 24 object p3 = new { Father = "tom", Mother = "lucy" };//也可以,object可以指向任意类型 25 //p3.Mother; //这样写不可以,因为不知道p3.Mother是什么类型。
=========================进化前:var为匿名函数服务,匿名函数为linq服务==============
1 int[] values = { 3, 5, 9, 8, 2, 20, -5, -9, 306 }; 2 3 //过滤掉负数,把数组排序,然后元素两边加[]输出 4 5 var e1 = values.Where(i => i > 0).OrderBy(i => i) 6 .Select(i => "[" + i + "]"); 7 foreach (var i in e1) 8 { 9 Console.WriteLine(i); 10 }
==============================进化:微软V5,效率更高更清晰====================
///编译器玩花招 //执行顺序是从上到下 var e1 = from i in values//foreach(int i in values) where i > 0 orderby i descending//降序排列 select "[" + i + "]"; //基于类型推断的考虑,select在最后,from在最前 foreach (var i in e1) { Console.WriteLine(i); }
标签:des style class blog code color
原文地址:http://www.cnblogs.com/skyl/p/3787922.html