ReSharper 配置及用法.docx

上传人:b****6 文档编号:5363153 上传时间:2022-12-15 格式:DOCX 页数:10 大小:595.53KB
下载 相关 举报
ReSharper 配置及用法.docx_第1页
第1页 / 共10页
ReSharper 配置及用法.docx_第2页
第2页 / 共10页
ReSharper 配置及用法.docx_第3页
第3页 / 共10页
ReSharper 配置及用法.docx_第4页
第4页 / 共10页
ReSharper 配置及用法.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

ReSharper 配置及用法.docx

《ReSharper 配置及用法.docx》由会员分享,可在线阅读,更多相关《ReSharper 配置及用法.docx(10页珍藏版)》请在冰豆网上搜索。

ReSharper 配置及用法.docx

ReSharper配置及用法

ReSharper配置及用法

第1节配置

1.1换回到vs2010的智能提示

安装后,Resharper会用他自己的英文智能提示,替换掉vs2010的智能提示,所以我们要换回到vs2010的智能提示

1.2使用vs2010快捷键

是使用vs2010的快捷键还是使用Resharper的快捷键呢?

我是使用re的快捷键

1.3文本编辑器修改

Resharper安装后,会做几件事情,这几件事情对于除此使用者,比较麻烦,因此归纳总结一下,以资参考。

(1)、会将选项——文本编辑器——C#——常规——自动列出成员这个选择框的勾选去掉。

这样当你使用某个方法的时候,便不会提示参数,是一个很郁闷的事情。

可以手动勾上。

(2)、会将选项——文本编辑器——C#——高级——显示实时语义错误、在编辑中用下划线标识错误这两个选项去掉。

这个本来没有什么,但是如果卸载了Resharper,vs编辑器变不会实时提示错误。

因此卸载Resharper后,需要把这两个选项重新勾选上。

1.4老提示你用var来代替所有类型。

按以下步骤,禁用该提示:

1、打开“Resharper”菜单,选择“Options...”;

2、从弹框中选择“CodeInspection”,“InspectionSeverity”;

3、选择“LanguageUsageOpportunities”;

4、将“Use'var'keywordwheninitializerexplicitlydeclarestype”,设置为“Donotshow”。

第2节用法

2.1快捷键大全

下面是快捷键大全。

 

2.2Alt+F7

Alt+F7将你光标所在位置的变量的所有使用以列表的方式显示出来,显示结果的窗体可以像其他窗体那样停靠。

它的优点包括:

∙可以从所有使用中挑选只显示readusage或者writeusage,有时我们只是想知道某个变量在哪里被改变了。

找到的位置前的图标也告诉你这点。

∙可以在下方预览,即使我们列出所有使用,也不想跳转到每个使用它的地方,这时预览可以帮你大忙。

∙当你在代码编辑器中改动了某些使用时,比如删除了某行,那么在查找结果的窗体中,会用删除线表示出来。

∙默认的是寻找解决方案中所有的使用,并且按照命名空间来组织,非常便于选择。

我现在已经记不起来在没有Alt+F7之前我是怎么查找的。

反正现在我几乎不怎么样Ctrl+F了,除非我忘记了某个变量的名字。

如果是这样,多半这个名字需要refactor,那也是Resharper的另一大块功能所在。

也许有人对这个功能嗤之以鼻,但是用过CAB的人都知道,订阅和发布某个事件的签名,完全是字符串,如果你不用搜索来找到它的话,你都不知道这个控件的鼠标点下去,到底有多少个处理程序在背后开始工作了。

用了Alt+F7来搜索这个字符串,等于在查找背后所有的调用者。

不过提示你,当光标停留在一个类型上时,要慎用Alt+F7,假设是一个string,你应该能想象到得找到多少个使用

 

2.3Alt+Enter

威力无比的Alt+Enter回车

万能的Alt+Enter能够帮你完成很多编写代码过程中的dirty work,总结起来大概是这么些:

∙帮你实现某个接口或抽象基类的方法;

∙提供你处理当前警告的一些建议;

∙为你提供处理当前错误的一些建议(不一定是真的错误);

∙为你简化当前的臃肿代码;

 

2.4Ctrl+F11

Ctrl+F11  当我们看别人的代码,或者是看自己的代码的时候,总是觉得代码太多,于是我们就用region来把代码进行了封装注释,可是这样之后别人看代码就很郁闷,Resharper的 FileStructure 功能,就可以把region和你的方法都展示出来。

说了这么多,其实就是把对象浏览器和region的长处结合起来,既可以清晰的分类,又能一目了然的找到需要的方法。

Resharper这时帮上你的大忙了。

用Ctrl+F11,就弹出一个像右边这样的窗口来。

这里面,按照你的region来显示,这样读你的代码的人也受益了。

每个方法的参数,返回值都如UML一样列出来。

∙如果需要浏览到某个方法,直接双击它的名字;

∙如果要把某几个方法装进一个新的region,则可以选中方法,点工具栏上的像框的那个图标;点叉则会删除这个region并把相应的方法移到外面来。

∙如果要调整某个方法的位置,比如把它移到别的region里面去,只需要在这里拖动这个方法即可。

∙更可喜的是,你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了,在某个方法上右键你就能开始操作。

 

2.5重构才是王道(上)

重构是一种精神,证明你在致力于提供高效的、精炼的、健壮的代码,而不是凌乱的、晦涩的、漏洞百出的代码。

 

在VisualStudio2005中,微软第一次提供了重构工具。

但是不够,远远不够。

我们需要的重构是非常广义的,我们想要对代码进行快速的调整,快到我在想什么我的工具就能做什么。

这才是追求重构的境界。

所以在这个意义上,几乎Resharper为你提供了巨大的生产力。

 

VisualStudio2005提供的重构包括了如下:

1.封装字段

2.提取方法

3.提取接口

4.提升局部变量

5.移除参数

6.重命名

7.重新排列参数

这些方法在Resharper中全部都支持(但Resharper的重构远不止这些),它们对应的变成了:

1.封装字段——IntroduceField

2.提取方法——ExtractMethod

3.提取接口——ExtractInterface (另增加了ExtractSuperclass提取为基类)

4.提升局部变量——IntroduceVariable

5.移除参数——移到ChangeSignature(改变方法签名)中

6.重命名——Rename (Resharper会根据对象的类型名称,提供你几个可选的最合适的名称)

7.重新排列参数——移到ChangeSignature(改变方法签名)中

我知道很多人都声称自己英文不好,但是,这确实都是很简单的单词,难不倒任何人的。

这些重构的功能是人所共知的,下面就告诉大家一些Resharper特有的,首先,重构的快捷键是Ctrl+Shift+R:

 

1、对于类,除了提取接口、基类,你还可以移动它到其他的命名空间和移动到别的文件里,这是一个实用的功能,也许你不信,但是我这真的有个人,把所有的businessentity都写在一个DataObject.cs里面。

你难以想象,我打开它时嘴张了多大。

 

2、对于字段,提供了:

∙SafeDelete,会检测所有使用到的地方,并询问如何删除;

∙PullMemberUp和PushMemberDown,可以把这个字段在基类和继承类中移动;

∙Usebasetypewherepossible,尽可能的使用基类,由于ArcGIS平台是基于com组件的,很多时候我们需要的是IGeometry,IPointCollection这样的接口所公开的属性或者方法,于是你没有必要保存一个polygon对象,而可以使用基类型;

∙EncapsulateField,封装字段,但是这个功能远没有另一个提供同样功能的操作有用。

我可以在后文中来讲。

3、对于方法,提供了:

∙与字段类似的功能,此外;

∙ChangeSignature,更改函数签名,包括更改名称,返回值类型,参数的各种信息,添加和删除参数,相当实用。

如果你是在重写方法上操作,会提示你是否到基类中更改。

∙MakeStatic,如果Resharper检测到这个方法并没有与非静态成员相关联的话,往往会自动地提示你(以黄色横杠的形式出现)可以改为static,如果你自作主张的对一些方法进行修改也无不妥,但后果自负。

∙Extractclassfromparameter,如果你的参数有七个八个,那是否考虑用一个类来封装这些参数呢,于是这个功能应运而生。

∙MethodtoProperty,顾名思义,如果还在使用GetField()或者SetField(..)的话,你一定是从非.net星来的。

4、在方法体内部:

 

ExtractMethod,不用介绍了吧。

 

IntroduceVariable/Parameter/Field,取决于你光标所在的对象,可以提供转化的功能。

 

InlineVariable:

就是把:

IPointpoint=newPointClass(); 

point.PutCoords(_point.X,_point.Y);

变成这样子:

newPointClass().PutCoords(_point.X,_point.Y);//这是个糟糕的例子

5、重命名:

 

为什么重命名值得挑出来讲,因为Resharper提供了命名建议这一金子般的功能。

于是,想改名为易读性强的名字,不是那么费脑子的事情了。

Resharper会根据这个变量的类型,为你提供几个备选名字,名字列表是列在光标位置上的(对方法重命名会弹出对话框),你只需要用方向键选择并敲回车即可,这种名字多是将类型的名字首字母改为小写得来的,甚至刨根到基类的类型名,你还可以在此基础上加以改进。

如果你还在用i,j这种晦涩的名称,请迅速的把他们改为outIndex,pointCount之类可读的名称。

 

Resharper其实提供了更先进的功能,在你命名一个变量时,就有快捷键为你提供备选名字,但是Ctrl+Space是我们宝贵的输入法切换键,于是,我对变量名的敲定,往往是先起了一个较烂的,然后重命名的。

 

还有一些更广义上的,帮助你对代码进行调整的功能,我另写一篇吧,不然太长了。

 

2.6重构才是王道(下)

插入代码 

Resharper的Alt+Insert快捷键提供给你插入代码的功能。

由于这两个键非常难按(这是我的感受),真正在使用的时候,我用的是Alt-R-C-G,意指打开Resharper菜单——Code——Generate,都只需要你的左手,这样你可以右手一边比划,一边还在写代码,多酷啊。

∙生成的代码中最常用的是构造函数和属性,当你没有私有字段的时候,只会生成一个空的默认构造函数,而且没有生成属性的功能。

在你有私有字段的情况下,生成之前会让你选择哪些私有字段需要作为构造函数的参数,并生成初始化的代码,这样编写重载极其方便。

生成属性也类似。

∙再次常用的就是重写基类或者接口的方法了。

选择ImplementInterfaceMember或者OverrideInheritateMember,Resharper会查找当前类的基类或接口,然后按继承层次列出来,根据你的选择重写或实现这些方法。

∙不是太常用的是生成Equals和GetHashCode方法,在我的应用场景中很少重写它们。

但是根据《.NET设计规范》,不管是值类型还是引用类型的Equals都建议重写,并且应该重写GetHaseCode方法,因为它们相互依赖。

如果你有这个需求,那么生成这三个函数一定能够帮你的大忙。

包围代码 

VisualStudio也提供了外侧代码这个功能,你可以按Ctrl+K,Ctrl+S来激活这个功能,虽然我并没有任何鄙视VisualStudio的意思,但是Resharper的快捷键确实更加合理(我在按下Ctrl的时候真的很难按下S),条目也更加清晰。

Resharper中这个功能的快捷键是Ctrl+Alt+J,然后你就可以选择将当前行的代码包围到try-catch块或者using中了。

这是很高效的方法,我们倾向于在开发的早期尽量不捕获异常,而在中后期才加入异常处理机制。

于是你某一个时期有大量的工作是把他们扩到try-catch块中。

而你要使用支持dispose对象时,最好的方法是使用using块。

(卖蛋糕的,当我知道我的代码不是最优的时候,我总是寝食难安),这里自然也有把代码扩到region块中的功能,也是常用功能之一。

 

调整方法的位置 

前面我曾说过,如果要调整方法的位置,可以在代码结构窗口中拖放操作。

如果你觉得只是把一个方法移动到前面去,却不得不打开代码结构窗口太过重量级,那么有轻量级的方法:

当光标位于方法的名称上时,用Ctrl+Shift+上下键就可以移动方法的位置,包括方法的xml注释,但如果你用的不是三个/的xml注释而是两个/的,那么就对不起了。

 

其他琐碎的功能 

你肯定常常会复制粘贴当前行的代码,例如在使用StringBuilder.Append的时候,Ctrl+D可以简化你Ctrl+C,Ctrl+V的工作。

 

曾经有一个组合键可以注释掉当前行,还有另一个是取消注释,但是我已经淡忘了,因为Ctrl+/才应该是真正属于它的快捷键,再次按下就可以取消注释。

 

关于Resharper的重构功能就是这些,我可能天真地把很多额外功能都算在重构里了,但是它确实能够帮助你快速的对代码进行调整和优化。

所以,请不要深究我对重构的概念认识是不是混乱。

增强的浏览功能

浏览参数的方式 

输入方法的时候,我们已经习惯了由IDE提供给我们的参数提示,极大了方便了我们选择重载方法。

在没有Resharper的环境下,VisualStudio已经做到了。

那么为什么Resharper还要增强这个功能并大获好评的。

试问,VisualStudio那窄窄的一行参数提示有没有让你觉得憋屈。

我们有19寸的大屏幕,1600的分辨率,却不得不盯着那窄条条,小心翼翼的按着上下键寻找我们需要的重载。

至少,开发Resharper的家伙是受不了这种憋屈的,于是大开大阖版的参数列表出现了,长长的参数重载被以列表的形式展现出来,当你在使用GDT+方法,看到巨大的参数重载时,你会从心底里发出感叹:

卖蛋糕的。

 

同时,Resharper展示参数的快捷键变成了Ctrl+P,如果你觉得屏蔽了打印的快捷键简直是在开玩笑的话,那么问问你自己有多少次打印过自己的代码。

 

浏览打开过的文档 

我窃以为你已经知道了在VisualStudio中切换文档的方式,它们包括:

 

Ctrl+Alt+上下方向键,可以在打开的文档中切换; 

Ctrl+Tab,不仅可以在文档之前切换,并可以切换到解决方案文件夹,属性视图去,需要按左右键。

 

但是怎么样打开最近编辑后关闭的文件呢,VisualStudio很客气的又没有提供此功能,于是留给了Resharper。

在我这里这个快捷键是Ctrl+E,Ctrl+E,没错,按两次。

如果你的不是,那么在Resharper-View-RecentFiles菜单下看看它是什么。

因为你会时常用到。

打开一个文件的列表,用方向键选择并回车就会在编辑器中打开。

 

很多人说Resharper的性能问题,我想,一个可能的原因是打开的文档太多了,如果你有时刻关闭不需要的文档的习惯,性能或许不会那么差,并且你可以随时打开这些你关闭了的文档,就像在已经打开的文档中切换一样的方便。

 

我的团队中没有用到敏捷开发那些高级的东西,但是我们还是保持着每次改动都仅涉及两三个文件的好习惯,并且频繁的commite到源代码服务器上去。

所以,我每次真正要编辑的文件不多,性能不是问题。

 

和大家分享了很多Resharper使用的技巧,点点滴滴都已经融入我日常的开发工作中了。

当然很不全面,例如与Nunit的集成,由于我们不是测试驱动,所以没有任何体验,自然也不敢大放厥词;也很主观,我觉得它好,你可能觉得它不好,萝卜青菜各有所爱。

再说,它也不是没有白痴的地方,在文档上点右键增加的一个CloseAll功能,可以关闭所有打开的文档,关闭了干什么,对着一个空白的屏幕发呆么?

我觉得原生的“除此之外全部关闭”就够了。

还有一个定位的功能(LocateinSolutionExplorer),真是没用,如果你在VS选项中设置了,在解决方案管理器中跟踪活动项,那么VS自动就给你定位了。

 

不管怎么说,它带给我更快更方便的开发体验,把我从一些琐碎的,不人性化的功能中解放出来。

从这一点上来说,我很希望越来越多的人喜欢上它,开始用它,并帮助它更好的发展。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1