Resharper 简介-安装-功能展示

最近做安妮花的一个项目才接触到IDE的Reshaper插件,不得不说太喜欢它了。Reshaper丰富的功能已经到了牛X的程度。只能说用了之后都说好!

每一个优秀的.NET程序员都应该学会,并探索它丰富的功能!

一:Reshaper是什么

ReSharper是一款由jetbrains开发的针对C#,  ASP.NET,VB.NET, XML, 和 XAML的编辑器。沿袭了jetbrains开发工具一贯的优良传统,ReSharper拥有高度智能的纠错,30多种高级代码重构功能,方便的单元测试 工具,快速导航、检索,以及一键格式化代码,自动代码生成和模板功能等很多特性。

相关链接

 

二:ReSharper关键特性

2.1 C# 3.0深度分析

ReSharper对整个解决方案分析你的代码听错误和警告,并时实时的(当你输入时)高亮显示它们。对大多数错误,它立即通过智能修正给出解决问题的方法。它也可以给出编码建议和线索,这些东东提供洞察代码结构和逻辑,并使引起你对潜在的设计错误注意。你也可以注释你代码以使ReSharper更好的分析你的代码。

ReSharper对C#3.0提供了全面的支持,包括LINQ,隐式类型本地变量和数组,扩展方法,自动属性,lambda表达式,对象和集合的初始化,匿名类型,表达式树,和部分方法。无论什么时候如果在你的代码中有错误或无效代码,ReSharper会立即让你知道。

阅读更多的C#代码分析

2.2 高级代码协助

ReSharper提供许多简化代码任务的快捷方式以提高你的生产力和节省你的时间。在上面的截屏中,ReSharper智能的建议你添加遗漏的using或在你输入类型名称时导入正确的全名。它可以使用不同的代码模板快速的生成代码,在编辑器中查看类型和他们的成员的文档,使用称为“上下文动作”(context actions)执行代码转换,还有其他更多的。

ReSharper使用三种代码完成类型来扩展和提高Visual Studio本身的智能化。标识完成建议只存取在当前作用域的类型。智能完成任务非常有效,实时过滤成员方法和变量以匹配你输入的表达式。导入符号完成,使在当前项目中完成类型名名称和扩展方法成为可能。它也在需要的时候自动添加适当的using引用。另外还有语句完成,使用一个简单的快捷键就可以自动添加必要的语法元素(大括号,分号等),并把光标放置到适当的位置以开始下一句。

阅读更多的ReSharper的高级代码协助

2.3 众多的代码重构

在Visual Studio环境下,ReSharper为C#和Visual Basic提供了丰富的自动代码重构功能。


更改签名


拷贝类型


使方法为非静态(非共享)


把抽象类改为接口


封装字段


使方法为静态(共享)


把匿名类型转换为命名类型


从参数中抽取类


移动静态成员


转换扩展方法为简单静态方法


抽取接口


把类型移动到另一个文件或命名空间


转换索引(默认属性)为方法


抽取方法


把类型移动到外层


转换接口为抽象类


抽取超类


把成员拉到基类


转换方法为索引(默认属性)


内联方法


把成员放到子类


转换方法为属性


内联变量/字段


重命名


转换属性为自动属性


引入字段


用工厂方法替换构造函数


转换属性为方法


引入参数


安全删除


转换静态方法为扩展方法


引入变量


如果可能尽量使用基类

每一个代码重构都要分析选择的所应用的整个范围(这可能是你的整个解决方案),包括交叉语言代码,用这种洞察力以可能最智能化的方式修改代码结构。可以重命名,移动,安全删除标识;导入和内联字段、变量和参数;转换属性为自动属性和方法,转换静态方法为扩展方法,等等。另外,使用快速修正和上下文动作,使各种简单代码转换(只是为了方便和可用)成为可能。

译注:这里内联是指把在外面定义的变量或方法的方法体直接嵌入到使用的代码中。

阅读更多关于使用ReSharper重构C#和VB.net代码的内容

2.4 导航和搜索

无论什么时候你需要查找某个类型,字段,方法,或任何其他的标识,ReSharper提供了多种实现方法,可以通过名称查找一个标识,在代码从引用位置导航到标识的声明位置,查找并高亮显示标识用法。可以在当前位置使用简单的快捷方式实现所有可用的导航行为。

另外,使用集成到Visual Studio用户接口的特别工具窗口,ReSharper可以让你看到完整的类型继承树和文件结构。

ReSharper对最近编辑扩展了一系列的导航和搜索的特性—你最近修改的文件或标识的下拉列表。

阅读更多的导航和搜索

2.5 代码清理

代码清理是一个数十个ReSharper特性的快捷方式(Code Cleanup is a shortcut for a dozen of ReSharper features),根据自定的风格格式化代码,排列“this”限定词,移除冗余的代码,根据候补字段转换成自动属性,把字段置为只读,优化using命令,适当的简化引用,更新文件头,使用vars替换显式类型,或使用更多的设置修改你的C#代码。

对VB.net,优化import命令,适当的简化引用,根据格式风格格式化你的代码。可以在批模式下进行代码清理工作,所以可以即刻对整个项目甚至解决方案进行清理。

阅读更多关于代码清除内容

2.6 交叉语言功能

为了混合C#和VB.net项目,ReSharper帮助你保持代码的各个部分在一起流畅的工作和在你的代码间轻松的导航。

所有导航和搜索动作把所有语言的代码都考虑在内,包括C#,VB.net,Asp.net,和XAML。你可以导航到使用,声明,继承,基类和更多—交叉语言。无论何时只要可能,都会由使用重构、上下文动作、或覆盖两个主要语言的快速修改进行自动引用修正。单元测试是可用的,并且无论使用C#或VB.net写单元测试都是一样的用。

阅读更多的ReSharper交叉语言功能

2.7 ASP.net支持

利用错误高亮,快速修正,上下文动作,代码协助,导航,重构,和其他特征,你现在可以愉悦而高效的编辑Asp.net文件。使用ReSharper,你可以不受打扰的在Asp.net中编辑和重构C#代码,如Web控件属性和事件,数据源,和内容点位符。

阅读更多的Asp.net支持

2.8 XML支持

ReSharper提供了一些省时的XML特征,包括类型完成,导航到引用类型,高亮显示,替换和移动标签,在两个标签之间导航和打开/关闭标签,使用代码协助和活模板。

阅读更多的XML支持

2.9 XAML支持

XAML特征包括XAML代码中的XML编辑,所有的ReSharper代码完成特征,几个重构(包括重命名重构),和实时错误提示,语义和语法分析。上面的截屏中显示在XAML资源中的敏捷的代码完成工作。

阅读更多的XAML支持

2.10集成单元测试

ReSharper自动侦查代码中的单元测试,并提供完整的单元测试支持。你能从代码编辑器中运行和调试测试。同时,一个专用的单元测试资源窗口会让你看到你的单元测试的结构和运行一个或多少单元测试会话的任意组合测试。

阅读更多的ReSharper单元测试

2.11 NAnt和MS Build脚本编辑

高级编辑性能(Advanced editing capabilities),之前只针对C#可以用,现在扩展到了NAnt和MSBuild脚本,为生成脚本提供了完整的代码协助,大量的导航和搜索特征,文件结构,实时错误高亮显示和快速修改。

阅读更多的NAnt和MS Build脚本编辑内容

要得到完成的ReSharper特征说明,请浏览ReSharper特征页。

本工具可以减少你在常规事务和重复的手工劳动上消耗的时间,让你有更多的时间把精力集中在现有的任务上。它众多的自动错误检查和代码更正特征可减少开发时间,提高你的工作效率。你会发现ReSharper很快就会用提高开发效率和提升代码质量抵偿其购买费用。使用ReSharper,.net开发者就会体验到什么是“愉快的开发”。

二-1:设置

1.1 智能提示

安装完毕后,IDE 的智能提示(Intellisense)便会默认使用 Resharper 的提示,不知道为什么,我一直不太喜欢它的提示。改过来,是在Option的窗口中:

1.2 快捷键

强烈建议你使用 Reshaper 的快捷键,不要担心 Reshaper 会把你原来的快捷键设置给覆盖了,因为如果某个快捷键和 VS 是冲突的,Reshaper会让你自己选择需要使用 VS 还是 Resharper 的快捷键,看如下界面:

注意,不要选择 Apply to all Reshaper shortcuts,如果选择了,这个界面将不会再出现了,而一般情况下,你会更喜欢在冲突的时候让自己做决定。

当然,如果你一定要使用 VS 原来的快捷键,那么,就应该在 Option 的如下窗口中选中红框内的选项,然后抖抖手,点 Save:

1.3 与 StyleCop 的整合

如果我们同时安装了 StyleCop(http://stylecop.codeplex.com/) ,则 Resharper 会整合提示你当前的代码是否符合你的 StyleCop 设置。

PS:以下配置基于 StyleCop 4.7 和 Reshaper 7.1.3。在某些情况下,版本较旧的情况下,StyleCop 和 Reshaper 没有整合到一起,使得你在代码规范的道路上不能使用 Resharper 的提示。

整合后,我们可以在 Option 界面的 Code Eidting-〉Code Cleanup 界面,Add 一个新规则,然后,在新规则中可以看到 stylecop 选项,如下:

经过了这些设置后,IDE 就会根据这个设置的标准进行提示,如下:

1.4  Reshaper 的 StyleCop 设置规则和 StyleCop 本身的设置规则冲突问题

熟悉 StyleCop 的码友们都知道,如果你的项目设置了 StyleCop 本身的规则,StyleCop 就会生成一个设置文档,如下:

那么,Reshaper 的 StyleCop 设置规则和 StyleCop 本身的设置规则能否变成一个呢?答案是:很遗憾,不能!你必须两头设置,使其变成一致。所以对我来说,Reshaper那个提示或者CodeClean只是个辅助手段,StyleCop那个的 “Run StyleCop” 才是最终的提交准则。

1.5 如果不喜欢某个提示该怎么办?

是的,你可以修改设置。如下:

在这个例子中,我不喜欢将下划线开头的变量作为 warning 进行提示,我们就可以选择最下方的 change settings…… 进行修改,选择后,如下:

可以看到,我们修改为加了前缀。

三:万能的 Alt + Enter

如果我们使用了 Reshaper 的快捷键设置,那么,在每个出现提示的地方,点击 Alt + Enter 组合键,就会弹出 Resharper 建议你要进行的操作,比如:

在这个提示里,Reshaper 告诉我们没有引用 System.Text 这个命名空间,这个时候,点击 Alt + Enter 就会自动 Using 该命名空间了;

3.1 自动完成的语法糖

再比如:

在 StringBuilder 上 Alt+Enter 组合键,就会提示你此处要用 var。

或者,又比如在 if 上使用组合键,就会提示你用三元运算符:

总之,Alt + Enter 是万能的,看到提示,就使用它,你常常会得到有意义的帮助来提升你代码的质量。一些复杂的 LINQ 你不会写,使用 Alt+Enter 就会自动帮你将一些代码转换成很牛叉的 LINQ,看上你好像是个 LINQ 高手一样;

3.2 提示

这个小灯就是提示,如果不想使用 Alt + Enter,就用鼠标猛戳这里,也会出现 Resharper 的建议。

四:Find Usage

在某个类,或者变量,或者方法上点 Find Usage ,或者戳快捷键 Alt + F7,就是把你选中类或变量或方法全部被引用到的地方显示出来。话说,VS2012之后的查找和查找引用功能简直弱爆了。总之,这个功能也是 Reshaper 的一个亮点。

尤其,我们注意到图中处,它将你多次查找用页签的形式给你保留了起来,我们在分析代码的时候,往往会一次性查找多个变量的引用,在这个时候,就特别有帮助。总之,这个功能必要而且很程序员。

五:File Structure

另外,是否恼怒与查看类的结构要去戳这个下拉框:

这个时候,你按组合键 Ctrl + F11,就会出现 Resharper 的 File Structure 窗口:

很方便的让你看到你的整个成员变量窗口。

六:万般兼重构

一个永远写出完美代码的程序员永远只存在于一个 白痴Leader 的头脑里,作为码畜的我们都知道,代码是重构出来的,永远不是设计出来的。所以,你永远需要 Ctrl + Shift + R:

Resharper 把你可能用到的重构方法都列出来了,动动键盘或者鼠标,你即刻就可以完成一次重构。

七:快速完成的代码

使用 VS 提供的智能感知和 TAB 键,能够快速完成代码,比如输入代码 prop,然后按 Tab 键,就会自动创建一个属性,不过 Resharper 提供了另外的选择,看上去可以完成更多的代码。

按组合键 Alt + Insert,出现如下窗口:

话说我从来没有使用 VS 的方法自动完成过创建一个构造器,而使用 Resharper 就可以轻松实现。

八:Cleanup Code

写了一个龌蹉的类之后,什么是最愉快的,就是让它顺便变干净以及变规范,这个时候,我们需要右键 Cleanup Code (Ctrl + Alt + F):

Resharper 提供了一种选择,让我们自己设置 Cleanup Code 的规范,当然,因为我们已经引入了 StyleCop ,所以这个规范可以设置起来非常方便。

PS:以上属于开发常用的 Reshaper 的功能,本文用于培训组员使用 Reshaper 用,着重想讲一讲快捷键冲突的问题和与 Stylecop 结合的问题。

参考:http://www.cnblogs.com/renji/archive/2007/12/11/resharper.html

Reshapter 7的快捷键:

时间: 2024-10-01 16:24:46

Resharper 简介-安装-功能展示的相关文章

Python 3 mysql 简介安装

Python 3 mysql 简介安装 一.数据库是什么 1.  什么是数据库(DataBase,简称DB) 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数字模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并且可为各种用户共享. 2.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中

Android静默安装实现方案,仿360手机助手秒装和智能安装功能

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装好.虽说这种方式看上去不打搅用户,但是却存在着一个问题,因为Android系统会在安装界面当中把程序所声明的权限展示给用户看,用户来评估一下这些权限然后决定是否要安装该程序,但如果使用了静默安装的方式,也就没

自动化运维工具ansible--笔记一之简介安装/常用模块

 目录:      简介安装      常用模块 简介安装: yum -y install ansible ssh-keygen -t rsa ssh-copy-id -i .ssh/id_rsa.pub [email protected] ansible -m  模块  -a 指定向模块传递的参数  -f 并发书 -k 默认基于密钥,使用基于口令认证 -i PATH : 指明使用的host inventory文件路径 vim ansible.cfg host_key_checking = Fa

[Android Pro] Android 4.1 使用 Accessibility实现免Root自动批量安装功能

reference to  :  http://www.infoq.com/cn/articles/android-accessibility-installing?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global 对于国内Android设备,应用的自动批量安装/更新一直是一个痛点,在之前,第三方应用商店通常要求设备Root,然后调用系统的 PackageManagerServic

CSS3 Transitions, Transforms和Animation使用简介与应用展示

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1268 一.前言兼目录索引 <天龙八部>里的虚竹小和尚之前可以说是和尚的先进人物与代表模范,各类清规戒律谨记与严守.但是,后来呢,花姑娘送到跟前,什么戒律都成了浮云,禁不住诱惑享乐去了.啊,我现在似乎有类似的感觉,本来不打算深究CSS3的一些属性的,但是其效果以及实际应用价值之诱惑实在巨大,还是抵挡不住,折腾下了这篇文

Solid Edge ST8 新功能展示(3)

Solid Edge ST8 继续向大家展示其新增的功能.这次将展示:工程图比较.工程图增强.IFC for BIM(建筑信息模型).由于三个新功能展示均通过视频来完成,请大家在WIFI环境下观看,或者直接键入文章中的地址. 1)图纸比较 http://v.qq.com/boke/page/c/0/8/c0157mwkoj8.html 2)工程图增强 http://v.qq.com/page/a/h/9/a0157wyb8h9.html 3)IFC for BIM http://v.qq.com

C#Light 再推荐,顺便介绍WP8 功能展示项目

由于在项目中验证了C#Light脚本,C#Light的健壮和稳定程度已经得到了很大的提升. 现在可以更好的把C#Light介绍给大家使用,同时也有更多的自信,告诉大家这是一个已经具有商业价值的类库. C#Light 是一种脚本化语言,可以拿来算算表达式,做做控制函数,写点游戏逻辑 C#Light的特色如下: 1.C#Light在语法上和C#保持一致,必要时可以用c#代码和C#Light脚本互换 2.C#Light测试了全平台的通用性,只要满足dotnet2.0的运行环境,从xamarin家族到u

iOS 通知的变化ios9-10,新功能展示

一.变化 四.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserNotifications的易用,功能也变得非常强大. iOS 9 以前的通知 1.在调用方法时,有些方法让人很难区分,容易写错方法,这让开发者有时候很苦恼. 2.应用在运行时和非运行时捕获通知的路径还不一致. 3.应用在前台时,是无法直接显示远程通知,还需要进一步处理. 4.已经发出的通知

VMare中安装“功能增强工具”,实现CentOS5.5与win7host共享文件夹的创建

读者如要转载,请标明出处和作者名,谢谢. 地址01:http://space.itpub.net/25851087 地址02:http://www.cnblogs.com/zjrodger/ 地址03:http://blog.csdn.net/zjrodger 作者名:zjrodger [OS和其他辅助软件参数] Guest OS: CentOS 5.5 Host OS: Win 7 32 bit OS安装介质:CentOS-5.5-i386-bin-DVD.iso 虚拟机:VMware wor