#t#C#作为Visual Studio的当家花旦,每次Visual Studio和.NET Framework的升级都会给她带来很多激动人心的特性,让这位微软力捧的明星更加耀眼夺目。这个Visual Studio 2010 CTP中就包含了C# 4.0的动态查询(Dynamic Lookup)、命名参数/可选参数、COM互操作简化等等新特性。
除了语言本身的升级外,在Visual Studio的IDE上微软也下了功夫,提供了很多实用的功能,来帮助程序员们高效地开发越来越复杂的应用。接下来,我们从语言本身和IDE两个方面,来介绍Visual Studio 2010 CTP所带来的针对托管语言的新特性。
每次Visual Studio的升级,总是伴随着大量新的语言特性的引入和IDE的更加高效智能。这些新特性的引入,令无数跟随Microsoft的程序员“痛并快乐着”,快乐的是新特性的引入,无疑会提高开发效率,痛苦的是又要开始学习新技术了,但是不管怎样,这就是“程序人生”。文章的意义,就是想让大家的快乐多一点点,痛苦少一点点,人生就更加美好了。话不多说,开始我们的新历程吧。
在Visual Studio 2010 CTP中,Visual Basic 10、C# 4.0以及IDE所引入的新特性主要包括:
Visual Basic 10
特性 |
描述 |
自动实现属性
(Auto-Implemented Properties) |
在Visual Basic 10中,我们可以简单地通过一行就完成标准属性的定义。自动实现属性和 C# 中的相同概念是完全一致的。 |
集合初始值设定
(Collection Initializers) |
Visual Basic引入了新的关键字From来简化集合的初始值设定,这将大大简化一些繁琐的初始化工作。 |
隐式换行
(Implicit Line Continuations) |
我们都知道,在Visual Basic中是使用换行符”_”显式地进行换行的。现在,在很多情况下我们可以不使用换行符”_”而实现隐式换行。 |
No-PIA 部署
(No-PIA) |
我们在编写基于 Microsoft Office 的应用程序时,往往需要部署一堆 VSTO 的 Runtime 程序集,但有时候我们编写一些应用程序时,仅仅调用了这些 Interop 程序集中很少的功能。例如仅仅保存或打开了一个 Excel 表格等,如果每次部署这样的应用程序都需要分发整个 PIA(Primary Interop Assemblies)的话就显得多此一举。在新的 Visual Basic 中,可以将一个 PIA 程序集的属性设置为 Embedded 来将其用到的对象引用内嵌到我们自己的程序集中,这样就避免了分发整个 VSTO Runtime 的臃肿部署方式。 |
内联 Lambda 表达式
(Inline Lambda Expressions) |
在Visual Basic 9中我们使用Lambda表达式 时,无论是否真正需要,都要一个返回值。在Visual Basic 10中,返回值已经不再是必须的,这就更C#保持了一致。
另外,在Visual Basic 10中, Lambda 表达式可以包含多条语句以处理比较复杂的逻辑,而无需像以前那样把逻辑处理交给其他的函数来处理。 |
C# 4.0
特性 |
描述 |
动态类型
(Dynamic Types) |
C# 4.0引入了对动态类型的迟绑定(late binding) ,当你得到一个动态类型的对象时,不管他是来自COM还是IronPython、HTML DOM还是反射,只需要对其进行操作即可,运行时会帮你指出针对特定的对象,这些操作的具体意义。这将带来很多新的应用,例如简化对Silverlight应用程序中HTML DOM对象的访问。 |
无PIA特性
(No-PIA) |
主互操作程序集(Primary Interop Assembly)是从COM接口生成的大型.NET程序集,用于协助完成强类型的互操作。无PIA特性允许你在设计时使用PIA,而无需在运行时使用它们。C#编译器会将程序中实际用到的PIA中的一小部分直接编译到程序集中,在运行时无需加载PIA,这样可以简化程序的部署,同时也可以减少内存的使用。 |
Office开发
(Office Programmability) |
C# 4.0支持命名参数和可选参数,这将大大简化COM互操作的语法,使得Office开发更加简单。 |
Visual Studio IDE
特性 |
描述 |
调用树
(Call Hierarchy) |
在Visual Studio 2010 CTP中,我们可以从解决方案中的任何一个成员函数直接跳转到调用它的函数或者它所调用的函数。这极大地方便了我们理解程序的执行流程。 |
即用即生成
(Generate from Usage) |
新的代码编辑器将根据用户的使用,在后台自动地生成新的类型和成员。 |
高亮引用
(Highlight Reference) |
在新的代码编辑器中,我们可以将光标停留在标识符上,代码编辑器将高亮所有对应的标识符引用。使用Ctrl + Shift + Up和Ctrl + Shift + Down组合键,我们可以在标识符的多个引用之间跳转。这个新特性在我们查找某些对象的使用情况时非常有用。 |
快速查找
(Quick Search) |
Visual Studio 2010引入了一个简化后的快速查找对话框,在这个快速查找对话框中,我们可以搜索解决方案中的文件,符号,注释等等。使用Ctrl+”,”快捷键可以调出这个快速查找对话框。 |
上面关于托管语言和IDE新特性的介绍,都非常概括而抽象,为了让大家有一个直观的感受,下面我们以一些实际的例子,来为大家展示这些新特性。