详解Visual C# 2010几大新特征
一 简介
本短文将向您展示Visual C# 中新推出的一些功能及增强性特征 通过这些新功能的协同工作有利于改进微软Office可编程性 增加您的代码管理功能 并为测试驱动开发提供支持 等等 有关更多信息 请参见文章《Visual Studio 产品亮点展示》 下面 我们来作逐一介绍 CTO NET频道向您推荐《专家揭秘Visual Basic 的十大新特性》 以便于您对整个Visual Studio 及 NET 有更全面的了解
二 C# 语言及编译器新特征
(一)动态支持
Visual C# 引入了一种新的数据类型dynamic 从而针对动态类型的后期绑定提供了支持 这种新数据类型的引入对众多新的场所提供了支持 包括对Office自动化这样的API 如IronPython库这样的动态API以及对HTML文档对象模型(DOM)等众多类型的 API的简化访问 有关详细信息 请参阅《使用动态类型(C#编程指南)》和《dynamic(C#参考)》
(二)Office编程
在访问接口(包括Office自动化相关API)方面 Visual C# 进一步增强了相应的支持 这主要是由于新增加了命名和可选参数 动态类型 索引属性以及可选的ref修饰符 等等
有关Visual C# Office编程的详细信息 请参阅《如何 在互操作中使用索引属性(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# 中得到了增强 系统使用波浪型下划线来指示你输入的错误和警告信息 如今 该功能已扩展到方法定义以外的那些内容 如返回类型 参数类型以及方法声明的默认值 等等
四 示例应用程序
lishixinzhi/Article/program/net/201311/13892