苏木清华

--一些小记录

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

AnonymousType

二、CLR 眼中的Anonymous Type
 

var v = new{ID = Guid.NewGuid(), Name= "Zhang San" };
通过编译,Compiler将会创建一个名为

<>f__AnonymousType0<<>j__AnonymousTypeTypeParameter1, <>j__AnonymousTypeTypeParameter2>的Class。

该Class的结构如下:


   public sealed class <>f__AnonymousType0<<>j__AnonymousTypeTypeParameter1, <>j__AnonymousTypeTypeParameter2>  
2: {  
3:     public <>j__AnonymousTypeTypeParameter1ID{ get; set; }  
4:     public j__AnonymousTypeTypeParameter2 Name{ get; set; }  
5:     private j__AnonymousTypeTypeParameter1 <>i__AnonymousTypeField3;  
6:     private j__AnonymousTypeTypeParameter2 <>i__AnonymousTypeField4;  
7: }


<>j__AnonymousTypeTypeParameter1和<>j__AnonymousTypeTypeParameter2这两个Generic Type代表我在 {} 中制定ID和Name的类型。

通过这个结构,我们发现其定义和一般的Generic Type并没有什么区别。

posted on 2010-11-24 12:35  苏木清华  阅读(158)  评论(0编辑  收藏  举报