一简介
本短文将向您展示Visual C# 中新推出的一些功能及增强性特征通过这些新功能的协同工作有利于改进微软Office可编程性增加您的代码管理功能并为测试驱动开发提供支持等等有关更多信息请参见文章《Visual Studio 产品亮点展示》下面我们来作逐一介绍CTO NET频道向您推荐《专家揭秘Visual Basic 的十大新特性》以便于您对整个Visual Studio 及NET 有更全面的了解
二C# 语言及编译器新特征
(一)动态支持
Visual C# 引入了一种新的数据类型dynamic从而针对动态类型的后期绑定提供了支持这种新数据类型的引入对众多新的场所提供了支持包括对Office自动化这样的API如IronPython库这样的动态API以及对HTML文档对象模型(DOM)等众多类型的COM API的简化访问有关详细信息请参阅《使用动态类型(C#编程指南)》和《dynamic(C#参考)》
(二)Office编程
在访问COM接口(包括Office自动化相关API)方面Visual C#进一步增强了相应的支持这主要是由于新增加了命名和可选参数动态类型索引属性以及可选的ref修饰符等等
有关Visual C# Office编程的详细信息请参阅《如何在COM互操作中使用索引属性(C#编程指南)》和《如何使用Visual C# 访问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 中使用Ctrl+Shift+↑组合键或Ctrl+Shift+↓组合键更多的相关信息请参考《如何使用高亮引用》
(四)Generate From Usage特性
Generate From Usage特性能够使您在定义类和成员之前使用它们在代码中没有留下当前位置的情况下你可以为一个你想使用但尚未定义的类构造器函数方法属性字段乃至枚举类型创建存根从而最大限度地减少中断您的工作流程的可能性
Generate From Usage特性支持测试优先型软件开发这样的编程风格更多的相关信息请参考《Generate From Usage》和《演练使用Generate From Usage特性支持测试优先型开发》
(五)智能感知提示模式
在新的Visual C# 中智能感知现在提供了两种选择以支持智能感知的语句自动完成功能完成模式和建议模式当在定义类及其成员之前使用它们时使用建议模式有关这方面更多的信息请参考这里
(六)现场语义错误提示
现场语义错误提示(Live Semantic Errors)功能在Visual C#中得到了增强系统使用波浪型下划线来指示你输入的错误和警告信息如今该功能已扩展到方法定义以外的那些内容如返回类型参数类型以及方法声明的默认值等等
四示例应用程序
Visual C#提供了一组新的示例应用程序将向您展示如何利用上述新的C#功能简化Office编程访问IronPython库创建动态对象开发和使用通用的协变(covariant)和反变(contravariant)泛型代理等等有关Visual C#语言示例的更多信息及如何访问它们请参考《Visual C#示例应用程序》一文