云南天气免费注册登陆发布文章  
网页教程   |   平面教程   |   网络编程   |   数据库   |   服务器
您所在的位置:云港首页 >> 站长学院 >> 网络编程 >> 正文
深入理解C# 3.x的新特性系列
文章来源:本站收集 责任编辑:yn47.com 加入时间:2008-4-6 字体显示:
  “合抱之木,生于毫末;九层之台,起于垒土”,如果把.NET比作一栋摩天大楼的话,CLR就是这座大楼的基石。CLR功能强大而复杂,它不仅为我们的.NETProgram提供一个托管的执行环境,还为我们引入了一系列全新的概念:JIT,GC,MSIL,AppDomian,Assembly等等。深入了解CLR有利于我们开发高质量的.NETApplication。为此,Anytao邀请我一起创建了CLR基础研究团队,希望搭建一个学习、交流的平台一起讨论CLR。自该团队创办以来,Anytao为此费心不少,在他的提议下,CLR基础研究团队推出了一个叫做“精品系列推广活动”。作为该团队共同创办人的我,深感惭愧,只能尽我所能写一些相关的文章支持这个活动,为此有了这篇关于C#3.x的新特性的总结。
  
  较之C#2.0,C#3.x引入了一系列新的特性,为我们编程带来很大的便利,通过有效地利用这些新特性,我们可以编写出更加简洁、优雅的程序。不过这些新特性仅仅是编译器给我们耍的小花招:在编译的时候加入一些必要的Code,使这些在C#2.0角度看略显“残缺”的Code变得“完整”,实际上最终生成的Assembly和在C#2.0时代并没有本质的不同。为此,有些人对这些新特性不以为然,觉得仅仅是一些表面文章。但是我的观点是:既然这些特性能给我们带来便利,干嘛不用呢?
  
  本系列的着重点并不是放在如果去应用这些新特性上(实际上使用这些特性是很简单的),而是更多地落在对这些特性的实现的介绍上面:编译器到底在编译的时候加了哪些额外的代码来完善这些略显“残缺”的代码。
  
  1.AnonymousType
  
  AnonymousType允许我们定义一个对象并初始化一组任意的属性列表,而这个对象对应的Type并不是预先定义的。比如:
  
  varv=new{ID=Guid.NewGuid(),Name="ZhangSan"};
  
  2.ExtensionType
  
  通过ExtensionMethod,我们可以不改变Type定义的前提下对其方法成员进行扩展:我们在另一个Type中定一个一个特性的Static方法,使之作为这个Type的ExtensionMethod,这样的方法可以象其它方法一样的方法进行调用。LINQ的Operator,比如Where,From,Orderby等,都是通过这样的进行定义的。
  
  3.LambdaExpression
  
  LambdaExpression被广泛使用到LINQ中,其本质就是一个Delegate。在这部分中,我将介绍LambdaExpression是如何通过一个Delegate来实现的。
  
  4.AutomaticallyImpementedProperty
  
  有了AutomaticallyImplementedProperty,我们可以简化传统的privatefield+publicproperty的属性定义方式,就像这样:
  
  publicclassVector{
  
  publicdoubleX{get;set;}
  
  publicdoubleY{get;set;}
  
  }
  
  5.ObjectInitializer&CollectionInitializer
  
  ObjectInitializer&CollectionInitializer是我将对象的创建和初始化合二为一:通过ObjectInitializer使用一次调用创建一个对象和初始化其属性成员,通过CollectionInitializer在创建Collection对象的时候同时初始化该Collection的初始成员:
  
  Vectorv=newVector{X=1,Y=2};
  
  IListlist=newList{"ZhangSan","LiSi","WangWu"};
返回栏目首页】 【打印此页】 【发表评论】 【发布文章】 【关闭此页
返回云南设计港首页
发表评论 查看评论
您的昵称: 1、遵守中华人民共和国有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。
2、本网拥有管理笔名和留言的一切权力。
3、您在本站留言板发表的言论,本网有权在网站内转载或引用。
4、如您对管理有意见请向留言板管理员或本网反映。
评论内容:
验 证 码: 看不清,请刷新验证码
相关文章
热点推荐
站长在线
网站运营
站长休闲
版权所有 云南设计港 © all Rights Reserved.  为了更好的浏览,建议使用分辨率:1024×768和iE6.0以上的浏览器浏览本网站
  滇icP备06002874号