[分享]C#3.0:Anonymous Type In CLR(3.5)

问题描述

我们说AnonymousType是C#3.0的新的特性,而没有说AnonymousType是.NETFramework3.5的新特性。这是因为AnonymousType仅仅是.NETProgrammingLanguage和相应的Compiler的新引入的特征。而对于.NETFramework3.5来说,它看不到这和原来有什么不同,对于AnonymousType和一般的NamedType,对于CLR来说他们之间没有什么本质的区别。通过下面这样的一段简单的代码:1varp1=new{Name="IORI",Age=27};然后我们再看看IL:Code1.methodprivatehidebysigstaticvoidMain(string[]args)cilmanaged2{3.entrypoint4//Codesize15(0xf)5.maxstack36.localsinit([0]class'<>f__AnonymousType0`2'<string,int32>p1)7IL_0000:nop8IL_0001:ldstr"IORI"9IL_0006:ldc.i4.s2710IL_0008:newobjinstancevoidclass'<>f__AnonymousType0`2'<string,int32>::.ctor(!0,!1)1112IL_000d:stloc.013IL_000e:ret14}//endofmethodProgram::Main15我们再这里就可以看出Compiler将会为p1这个AnonymousType创建一个名为<>f__AnonymousType0`2<string,int32>的类型。参数将根据数据成员的具体结构,这里也是声明一个类型。这个类继承自object,并且重写了ToString()和GetHashCode()的实现。所有的匿名类型自动继承自System.Object,并且重写了Equals(),GetHashCode(),andToString().详细请看这里:

解决方案

解决方案二:
该回复于2008-05-20 18:29:22被版主删除

时间: 2024-09-19 16:02:49

[分享]C#3.0:Anonymous Type In CLR(3.5)的相关文章

c#3.0系列:Anonymous Type In CLR(3.5)

我们说Anonymous Type是C# 3.0的新的特性,而没有说Anonymous Type 是.NET Framework 3.5的新特性.这是因为Anonymous Type仅仅是.NET Programming Language和相应的Compiler的新引入的特征.而对于.NET Framework 3.5来说,它看不到这和原来有什么不同,对于Anonymous Type和一 般的Named Type,对于CLR来说他们之间没有什么本质的区别. 通过下面这样的一段简单的代码: 1va

深入理解C# 3.x的新特性(1): Anonymous Type

在C#3.0中,引入了一个新的Feature:Anonymous Method,允许我们已Inline的方式来定义Delegate,为Developer在Coding的时候带来了很大的便利.在C#3.0中,我们又有了另一个相似的Feature:Anonymous Type.Anonymous Type允许我们已Inline的方式的创建一个基于未知类型.具有所需数据结构的对象. 一.Anonymous Type Overview  在传统的编程模式中,对象依赖于一个既定的Type,我们只能在Typ

分享在MVC3.0中使用jQuery DataTable 插件

前不久在网络上看见一个很不错的jQuery的DataTable表格插件.后来发现在MVC中使用该插件的文章并不多.本文将介绍在MVC3.0如何使用该插件.在介绍该插件之前先简单介绍一下,推荐该插件的原因.在项目中我使用jqgrid比较多.但是发现当进行样式调整时jqgrid的样式常常会让美工头疼.而datatable插件却是一个轻量级的jQuery插件.当我通过浏览器查看该js插件rander后的源码.发现只是一个简单的html table,非常简洁.那么在没有特殊要求的情况下使用这个插件,开发

一起谈.NET技术,分享在MVC3.0中使用jQuery DataTable 插件

前不久在网络上看见一个很不错的jQuery的DataTable表格插件.后来发现在MVC中使用该插件的文章并不多.本文将介绍在MVC3.0如何使用该插件.在介绍该插件之前先简单介绍一下,推荐该插件的原因.在项目中我使用jqgrid比较多.但是发现当进行样式调整时jqgrid的样式常常会让美工头疼.而datatable插件却是一个轻量级的jQuery插件.当我通过浏览器查看该js插件rander后的源码.发现只是一个简单的html table,非常简洁.那么在没有特殊要求的情况下使用这个插件,开发

分享在MVC3.0中使用jQue“.NET研究”ry DataTable 插件

前不久在网络上看见一个很不错的jQuery的DataTable表格插件.后来发现在MVC中使用该插件的文章并不多.本文将介绍在MVC3.0如何使用该插件.在介绍该插件之前先简单介绍一下,推荐该插件的原因.在项目中我使用jqgrid比较多.但是发现当进行样式调整时jqgrid的样式常常会让美工头疼.而datatable插件却是一个轻量级的jQuery插件.当我通过浏览器查看该js插件rander后的源码.发现只是一个简单的html table,非常简洁.那么在没有特殊要求的情况下使用这个插件,开发

[分享]eclipse 3.0 中jre设置的小错误导致在java文件中连接数据库失败

错误|连接数据库 java.lang.ClassNotFoundException: org.gjt.mm.mysq.Driver这也许是最普遍的错误了,一般解决方法就是检查数据库驱动是否安装到jdk目录下 (如:将mysql-connector-1-3-1.jar文件copy到jdk目录下的lib文件夹中) classpath是否设置了驱动的目录 (CLASSPATH=.;D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;D:\j2sdk\lib\mysql

android 反编译 apk 分享 smali2java 1.0.0.558

smali2java 1.0.0.558 smali2java是一个将smali代码反编译成java代码的工具. 什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言.使用baksmali或apktool可以将Android应用程序包(apk或jar)反编译为smali代码. smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码

[分享]MyEclipse 5.0 M2 注册码及下载地址

 序列号过期时间为2099年12月31日,估计用上5-10年都有可能(就看myeclipse的更新速度了).  Subscriber: www.1cn.biz Subscriber Code: jLR8ZC-444-55-4467865481680090  注册成功后会发现:  Subscriber: www.1cn.biz Product ID: E3MP (MyEclipse Professional Subscription) License version: 9.99 Full Main

WEB2.0按钮工具之百度分享的那些事

百度分享是一个是百度提供的一种用于网页地址收藏.分享的WEB2.0按钮工具,当站长安装代码到自己的网站后,用户就可以分享到人人网.分享到开心网. 新浪微博等一系列SNS站点,最近也被广大站长朋友所喜爱,为了让自己的网站出现百度分享的小手,很多站长在群里互相分享网站,百度分享真的那么重要吗? 能给网站seo带来什么好处?最近自己通过一段时间的观察发现得出了几点: 一.百度分享可以提升蜘蛛的抓取速度 这一点也是百度官方说明的,一些网站在放入百度分享工具,并且分享的次数较多时,我们会发现他的网站快照更