Visual C# 2010 中的新增功能

本页列出了 Visual C# 2010 中的新增功能和增强功能。 结合使用这些新功能可提高 Microsoft Office 的可编程性,增强浏览代码的能力,为测试驱动的开发提供支持,等等。 有关更多信息,请参见 Visual Studio 2010 产品亮点介绍

单击下面几节中的链接可阅读有关某个功能的更多信息。

C# 4.0 语言和编译器

动态支持

Visual C# 2010 引入了一种新类型 dynamic,以便支持对动态类型的后期绑定。 借助这个新类型可实现许多新方案,包括对 Office 自动化 API 等 COM API、IronPython 库等动态 API 和 HTML 文档对象模型 (DOM) 的简化访问。 有关更多信息,请参见使用类型 dynamic(C# 编程指南)dynamic(C# 参考)

Office 可编程性

通过增加命名参数和可选参数、dynamic 类型、索引属性以及可选的 ref 修饰符,极大地增强了对 COM 接口(包括 Office 自动化 API)的访问。

有关更多信息,请参见命名实参和可选实参(C# 编程指南)使用类型 dynamic(C# 编程指南)如何:在 COM 互操作编程中使用索引属性(C# 编程指南)如何:通过使用 Visual C# 2010 功能访问 Office 互操作对象(C# 编程指南)

类型等效性支持

现在部署的应用程序可以包含嵌入类型信息,而不是从主互操作程序集 (PIA) 导入的类型信息。 通过嵌入的类型信息,应用程序可以使用程序集中的类型,而无需引用运行时程序集或主互操作程序集 (PIA)。 如果发布了各种版本的运行时程序集,则包含嵌入类型信息的应用程序可以使用不同版本,而不必重新编译。 有关更多信息,请参见 /link(C# 编译器选项)。 有关示例,请参见演练:嵌入托管程序集中的类型(C# 和 Visual Basic)

协变和逆变

通过“协变”可以使用比泛型参数指定的派生类型派生程度更大的类型,而通过“逆变”可以使用派生程度更小的类型。 这样可以对实现了变体接口的类进行隐式转换,并提高将方法签名与变体委托类型相匹配的灵活性。 可以使用新的 inout 语言关键字创建变体接口和委托。 .NET Framework 还对若干现有泛型接口和委托引入了变体支持,包括 IEnumerable<T> 接口以及 Func<TResult>Action<T> 委托。 有关更多信息,请参见协变和逆变(C# 和 Visual Basic)

新命令行选项

/langversion 命令行选项导致编译器只接受在指定版本 C# 中有效的语法。

/appconfig 编译器选项使 C# 应用程序能够向编译器指明程序集的应用程序配置文件的位置。

Visual C# 集成开发环境

以下各节介绍了 Visual Studio 集成开发环境 (IDE) 的增强功能。

调用层次结构

使用“调用层次结构”可以通过显示下列内容在代码中进行导航:

  • 对于或来自所选方法、属性或构造函数的所有调用

  • 接口成员的所有实现

  • 虚拟或抽象成员的所有重写

这有助于更好地理解代码的流动方式,以及评估代码更改的效果。 有关更多信息,请参见调用层次结构

定位到

可以使用**“定位到”**功能来搜索源代码中的符号或文件。 通过使用 Camel 大小写格式和下划线字符,可以将符号分为多个关键字,从而可搜索包含在符号中的关键字。

有关更多信息,请参见如何:搜索对象、定义和引用(符号)

突出显示引用

单击源代码中的某个符号时,将在文档中突出显示该符号的所有实例。 若要移动到下一个或上一个突出显示的符号,可以使用 Ctrl+Shift+向下键或 Ctrl+Shift+向上键。 有关更多信息,请参见如何:使用引用突出显示

使用时生成

通过“使用时生成”功能可以直接使用类和成员,而不必提前定义它们。 您不必离开当前代码位置,即可为要使用但尚未定义的类、构造函数、方法、属性、字段或枚举生成存根。 这可以尽可能少地中断工作流。

“使用时生成”支持如测试先行的开发之类的编程模式。 有关更多信息,请参见使用时生成演练:带有“使用时生成”功能的测试先行支持

IntelliSense 建议模式

IntelliSense 现在为 IntelliSense 语句完成功能提供两种备选方式:“完成模式”和“建议模式”。 如果在定义类和成员之前使用它们,则使用“建议模式”。 有关更多信息,请参见列出成员

实时语义错误

“实时语义错误”功能在 Visual C# 2010 中得到了增强。 已对用波浪下划线指示键入时的错误和警告这一功能进行了扩展,现在可适用于方法体外部的构造,例如返回类型、参数类型以及方法声明中的默认值。

示例应用程序

Visual C# 2010 中提供了一些示例应用程序,演示如何使用新增的 C# 功能来简化 Office 编程、提供对 IronPython 库的访问、创建动态对象、开发与使用协变和逆变泛型委托等等。 有关 Visual C# 语言示例以及如何访问这些示例的信息,请参见 Visual C# 示例应用程序

请参见

参考

Visual Studio 调试器中的新增功能

概念

Visual Studio 2010 中的新增功能

Visual Studio 2010 编辑器中的新增功能

.NET Framework 4 中的新增功能

ASP.NET 4 和 Visual Web Developer 中的新增功能

部署中的新增功能