首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 正文

深入理解C# 3.0的新特性

     <>j__AnonymousTypeTypeParameter1和<>j__AnonymousTypeTypeParameter2这两个Generic Type代表我在 {} 中制定ID和Name的类型。通过这个结构,我们发现其定义和一般的Generic Type并没有什么区别。
  
  为了进一步了解生成什么样的Anonymous Type,我们使用IL DASM在IL级别看看生成的Anonymous Type的大体结构:
  
  
  为了做一个对比,下面是我们最开始定义的Named Employee Type在IL DASM中的结构:
  
  如果想更清楚了解Anonymous Type的本质,建议读者亲自使用IL DASM看看的每个成员具体的IL。
  
  三、Anonymous Type is Bound to Assembly
  
  在上面一个部分中我们说了对于CLR来说,Anonymous Type和一般的Named Type并没有本质的区别。但是话不能太绝对,他们之间还是有一点小小的差异。到底是什么样差异,我在这里先卖一个关子。在具体介绍这个差异的时候,我们先来看看一个Sample:
  
  在这个Sample中,我定义了两个Project:
  
  Console Application:Artech.NewFeatureInCSharp.ConsoleApp
  Class Libray:Artech.NewFeatureInCSharp.Library
  
  Artech.NewFeatureInCSharp.Library中定一个Employee Type: 
  

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  namespace Artech.NewFeatureInCSharp.Library
  {
   public class Employee
   {
   private Guid _id;
   private string _name;
  
   public Guid ID
   {
   get { return _id; }
   set { _id = value; }
   }
  
   public string Name
   {
   get { return _name; }
   set { _name = value; }
   }
   }
  } 

   
   
  和一个Static的Utility Class: 
  

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  namespace Artech.NewFeatureInCSharp.Library
  {
   public static class Utility
   {
   public static object Anonymous_GetEmployee(Guid id, string name)
   {
   return new { ID = id, Name = name };
   }
  
   public static Employee GetEmployee(Guid id, string name)
   {
   return new Employee { ID = id, Name = name };
   }
   }
  } 

上一页  [1] [2] [3] [4] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航