详解Visual C# 2010几大新特征

原创
开发 后端
本文将为大家讲解Visual Studio 2010中关于C# 2010新特性方面的特点。这些新特性有利于改进程序员的代码管理和驱动测试等方面的工作。

【51CTO经典译文】一、简介

本短文将向您展示Visual C# 2010中新推出的一些功能及增强性特征。通过这些新功能的协同工作有利于改进微软Office可编程性,增加您的代码管理功能,并为测试驱动开发提供支持,等等。有关更多信息,请参见文章《Visual Studio 2010产品亮点展示》。下面,我们来作逐一介绍。51CTO .NET频道向您推荐《专家揭秘Visual Basic 2010的十大新特性》,以便于您对整个Visual Studio 2010及.NET 4有更全面的了解。

二、C# 4.0语言及编译器新特征

(一)动态支持

Visual C# 2010引入了一种新的数据类型dynamic,从而针对动态类型的后期绑定提供了支持。这种新数据类型的引入对众多新的场所提供了支持,包括对Office自动化这样的API、如IronPython库这样的动态API以及对HTML文档对象模型(DOM)等众多类型的COM API的简化访问。有关详细信息,请参阅《使用动态类型(C#编程指南)》和《dynamic(C#参考)》。

(二)Office编程

在访问COM接口(包括Office自动化相关API)方面,Visual C#2010进一步增强了相应的支持,这主要是由于新增加了命名和可选参数,动态类型,索引属性以及可选的ref修饰符,等等。

有关Visual C#2010 Office编程的详细信息,请参阅《如何:在COM互操作中使用索引属性(C#编程指南)》和《如何:使用Visual C# 2010访问Office互操作对象(C#编程指南)》等文章。

(三)类型等价支持

现在,您可以部署一个应用程序,使之嵌入类型信息,而不是从PIA(主互操作程序集)中导入类型信息。借助于内嵌的类型信息,您的应用程序可以在运行时使用某种数据类型而无需要求使用对运行时程序集的引用。如果发布了运行时程序集的各种版本的话,那么,包含嵌入式类型信息的应用程序就可以直接使用这各种版本的程序集工作,而不必重新进行编译。有关的更多信息,请参见《/link(C#编译器选项)》。有关示例,请参见《演练:从托管程序集中嵌入类型(C#和Visual Basic)》。

(四)协变(Covariant)和逆变(Contravariant)

协变功能能够支持你使用比泛型参数更具体的类型,而逆变(contravariance)有助于使用更一般的类型。协变和逆变新概念的引入可以使实现变体接口的类进行隐式转换,从而为使用变体委托类型的方法签名匹配提供更多的灵活性。你可以使用in和out关键字来建立变体类型的接口和委托。新的.NET框架还针对几种现有的泛型接口和委托引进了变体支持。这些现有的泛型接口和委托包括IEnumerable<(Of <(T>)>)接口以及Func<(Of <(TResult>)>)和Action<(Of <(T>)>)委托。有关更多的信息,请参阅《C#和Visual Basic中的协变和逆变功能》。

(五)新的命令行选项

新引入的/langversion命令行选项可以使编译器只接受那些在指定版本的C#中有效的语法。

另一个新引入的/appconfig编译器选项能够使C#应用程序向编译器指定程序集的应用程序配置文件所在的位置。

三、Visual C#集成开发环境

以下各小节中将描述新的Visual Studio集成开发环境(IDE)中的一些增强支持。

(一)访问层次

访问层次能够通过显示如下内容实现在你的整个代码中进行导航。

展示代码中对某个方法,属性或者构造函数的所有调用;同时,一并给出在一个给定的方法、属性或者构造函数内部对于所有其他方法,属性或者构造函数的调用情况的层次展示。

一个接口成员的所有实现情况。

某个虚成员或抽象成员的所有重载情况。

访问层次能够使您更好地了解代码流向情况,从而更有利于评价代码变化带来的影响。有关更多信息,请参阅《访问层次》。

(二)导航支持

您可以使用导航(Navigate To)功能在源代码中搜索一个符号或文件。您也可以通过使用驼峰式大小写语法和下划线字符把符号分解成关键字的方式来搜索包含在符号中的关键字。

更多的信息,请参考文章《如何:搜索对象,定义和引用(符号)》。

(三)高亮引用

现在,当你单击源代码中的一个符号时,当前文档中这个符号对应的所有实例都会高亮显示。为了移动到下一个或上一个高亮显示的符号,你可以在Visual Studio 2010中使用Ctrl+Shift+↑组合键或Ctrl+Shift+↓组合键。更多的相关信息,请参考《如何使用高亮引用》。

(四)Generate From Usage特性

Generate From Usage特性能够使您在定义类和成员之前使用它们。在代码中没有留下当前位置的情况下,你可以为一个你想使用但尚未定义的类,构造器函数,方法,属性,字段乃至枚举类型创建存根,从而最大限度地减少中断您的工作流程的可能性。

Generate From Usage特性支持测试优先型软件开发这样的编程风格。更多的相关信息,请参考《Generate From Usage》和《演练:使用Generate From Usage特性支持测试优先型开发》。

(五)智能感知提示模式

在新的Visual C# 2010中,智能感知现在提供了两种选择以支持智能感知的语句自动完成功能:完成模式和建议模式。当在定义类及其成员之前使用它们时使用建议模式。有关这方面更多的信息,请参考这里。

(六)现场语义错误提示

现场语义错误提示(Live Semantic Errors)功能在Visual C#2010中得到了增强。系统使用波浪型下划线来指示你输入的错误和警告信息。如今,该功能已扩展到方法定义以外的那些内容,如返回类型,参数类型以及方法声明的默认值,等等。

四、示例应用程序

Visual C#2010提供了一组新的示例应用程序将向您展示如何利用上述新的C#功能简化Office编程,访问IronPython库,创建动态对象,开发和使用通用的协变(covariant)和反变(contravariant)泛型代理,等等。有关Visual C#语言示例的更多信息及如何访问它们,请参考《Visual C#示例应用程序》一文。

Visual Studio 2010 全球发布会

【编辑推荐】

  1. 详解如何设置Linux下的C#开发环境
  2. 浅析C#与C++在静态构造函数上的异同
  3. 详解C#中相等运算符重载可能造成的陷阱
  4. 增强的XML?通过C# 4.0 dynamic享受Ruby写法之探讨
  5. 详解C#泛型特性及相关实例
责任编辑:彭凡 来源: 51CTO
相关推荐

2010-03-26 14:37:57

Visual Stud

2009-09-02 16:21:17

Visual BasiC#语言

2009-05-25 15:42:03

Visual StudC#

2010-06-01 13:32:15

Visual Stud

2010-01-13 09:11:04

Visual Stud

2023-10-12 08:41:36

C# 开发工具

2011-03-31 09:13:00

Visual Stud

2009-08-10 16:47:45

Visual C#数据

2009-08-19 16:50:32

Visual C#C#语言特性

2010-03-31 08:35:17

Visual Basi

2010-07-27 09:40:01

敏捷Visual Stud

2010-03-11 14:37:47

Visual StudScrum

2010-07-29 09:41:23

Visual Stud

2010-02-05 09:06:17

Visual Stud

2010-03-24 09:06:02

Visual Stui

2009-07-02 10:07:24

C# 4.0的动态类型Visual Stud

2009-08-18 16:31:19

Visual C#编写

2009-08-20 11:03:34

Visual C#使用

2010-03-19 16:43:37

Visual Stud

2009-12-15 09:36:32

Visual Stud
点赞
收藏

51CTO技术栈公众号