linq
2018年10月24日 周三 13:30 linq深入.rtf 2018年10月8日 周一 13:28 linq深入 一、匿名类:[ C# 3.0/.NET 3.x 新增特性 ] 1.1 不好意思,我匿了 在开发中,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名类的语法中并没有为其命名,而是直接的一个 new { } 就完事了。从外部看来,我们根本无法知道这个类是干神马的,也不知道它有何作用。 var annoyCla1 = new { ID = 10010, Name = "EdisonChou", Age = 25 }; Console.WriteLine("ID:{0}-Name:{1}-Age:{2}", annoyCla1.ID,annoyCla1.Name, annoyCla1.Age); 经过调试运行,我们发现匿名类完全可以实现具名类的效果: 1.2 深入匿名类背后 既然我们发现匿名类可以完全实现具名类的效果,那么我们可以大胆猜测编译器肯定在内部帮我们生成了一个类似具名类的class,于是,我们还是借助反编译工具对其进行探索。通过 Reflector 反编译,我们找到了编译器生成的匿名类如下图所示: 从上图可以看出: (1)匿名类被编译后会生成一个 [泛型类] ,可以看到上图中的<>f__AnonymousType0<<ID>j_