频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Orcas版C#3.0的新特性(2)

作者: Scott Guthrie 出处:博客堂 2007-03-13 09:54    砖    好    评论   进入论坛
阅读提示:本文讲述微软ASP.NET和Ajax开发部的头脑Scott Guthrie在其博客中发布的C# 3.0的3个新特性。供大家参考!

2、Object Initializers——对象初始化器

本初始化器可以促进编译器自动生成property setter代码,由此可为用户省略了几行硬代码的编写。.NET Framework中的Types依赖于properties的使用。在初始化和使用一个新类时,开发人员通常要写出如下代码:

Person person = new Person();
person.FirstName = "Scott";
person.LastName = "Guthrie";
person.Age = 32;

你是否曾经想过使这一代码变得更加简洁,也许只用一行就可以实现?使用C# 和VB “Orcas”编译器,你可以充分利用名为“object Initializers”的“syntactic sugar”语言特征使以上代码简化如下:

Person person = new Person ...{ FirstName="Scott", LastName="Guthrie", Age=32 };

编译器将会自动产生合适的property setter代码来保持与上述详细代码段同样的语义。

对象初始化器不仅可在初时化类型时设置简单的属性值,而且允许我们随意设置更复杂嵌套的属性类型。比如,假设我们上述定义的每个Person类型均有一个“Address”类型的Address属性。我们可以用如下代码来创建Person对象并设置其属性:

Person person = new Person ...{
FirstName = "Scott",
LastName = "Guthrie"
Age = 32,
Address = new Address ...{
Street = "One Microsoft Way",
City = "Redmond",
State = "WA",
Zip = 98052
}
};

3、Collection Initializers——集合初始化器

这一新特性与上述特性基本相同,唯一不同之处在于它作用于集合。对象初始化器功能强大可以帮助开发人员更加容易且简洁的添加对象到集合中。例如,如果我想添加三个people到一个“Person”类型的generics-based List集合中,我们可以用以下代码实现:

List<Person> people = new List<Person>();

people.Add( new Person ...{ FirstName = "Scott", LastName = "Guthrie", Age = 32 } );
people.Add( new Person ...{ FirstName = "Bill", LastName = "Gates", Age = 50 } );
people.Add( new Person ...{ FirstName = "Susanne", LastName = "Guthrie", Age = 32 } );

在这个例子中仅使用新的对象初时化器特性一条,和C# 2.0编译器相比我们就省去12条额外代码的编写。

C# and VB “Orcas”编译器不仅使我们在对象的声明和初始化方面更加简单,而且支持“collection initializers”可以使我们避免成倍的Add语句,同时节省更多的击键次数:

List<Person> people = new List<Person> ...{
new Person ...{ FirstName = "Scott", LastName = "Guthrie", Age = 32 },
new Person ...{ FirstName = "Bill", LastName = "Gates", Age = 50 },
new Person ...{ FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
};

当编译器遇到如上语法,它将自动产生集合插入代码,就像如上所示拥有更详尽Add语句的代码段一般。

总之,作为开发人员,我们现在拥有更加简洁的方式来定义对象,初始化他们,然后添加他们到集合。在运行时,它所表达的语义将和今天所书写的详细语法一样正确,因此你不必担心任何行为上的变化。同时,现在你不必书写更多的代码,你的代码将变得更加简洁明了。

【责任编辑:火凤凰 TEL:(010)68476606-8007】



共2页: 上一页 [1] 2
【内容导航】
专题
C#实用基础教程
.NET Framework新手入门专题
C#技术开发指南
初探敏捷开发
WCF开发基础
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81120次)
·UML类图详解 (查看72587次)
·C++是垃圾语言?! (查看42719次)
·C#技术开发指南 (查看40290次)
·UML统一建模语言 (查看39225次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。