ReSharper 配置及用法1

http://www.jetbrains.com.cn/index.html 官方网站中文html

 

1:安装后,Resharper会用他本身的英文智能提示,替换掉 vs2010的智能提示,因此咱们要换回到vs2010的智能提示浏览器

3](1[KECO85FI{JZ@TE$NKE

2:快捷键。是使用vs2010的快捷键仍是使用 Resharper的快捷键呢?我是使用re的快捷键服务器

_]BA}4Y457W2E0T%{A73PK5

3:编辑器

Resharper安装后,会作几件事情,这几件事情对于除此使用者,比较麻烦,所以概括总结一下,以资参考。ide

(1)、会将选项——文本编辑器——C#——常规——自动列出成员 这个选择框的勾选去掉。这样当你使用某个方法的时候,便不会提示参数,是一个很郁闷的事情。函数

能够手动勾上。工具

(2)、会将选项——文本编辑器——C#——高级——显示实时语义错误、在编辑中用下划线标识错误这两个选项去掉。这个原本没有什么,可是若是卸载了Resharper,性能

vs编辑器变不会实时提示错误。所以卸载Resharper后,须要把这两个选项从新勾选上。测试

4: use  var优化

use implicitly typed local variable declaration

image

5:按 alt+enter 能解决不少问题。下面是快捷键大全。

 

 

 

 

6:   Alt+F7将你光标所在位置的变量的全部使用以列表的方式显示出来,显示结果的窗体能够像其余窗体那样停靠。

它的优势包括:

  • 能够从全部使用中挑选只显示read usage或者write usage,有时咱们只是想知道某个变量在哪里被改变了。找到的位置前的图标也告诉你这点。
  • 能够在下方预览,即便咱们列出全部使用,也不想跳转到每一个使用它的地方,这时预览能够帮你大忙。
  • 当你在代码编辑器中改动了某些使用时,好比删除了某行,那么在查找结果的窗体中,会用删除线表示出来。
  • 默认的是寻找解决方案中全部的使用,而且按照命名空间来组织,很是便于选择。

我如今已经记不起来在没有Alt+F7以前我是怎么查找的。反正如今我几乎不怎么样Ctrl+F了,除非我忘记了某个变量的名字。若是是这样,多半这个名字须要refactor,那也是Resharper的另外一大块功能所在。也许有人对这个功能嗤之以鼻,可是用过CAB的人都知道,订阅和发布某个事件的签名,彻底是字符串,若是你不用搜索来找到它的话,你都不知道这个控件的鼠标点下去,到底有多少个处理程序在背后开始工做了。用了Alt+F7来搜索这个字符串,等于在查找背后全部的调用者。

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

 

7:威力无比的Alt+Enter回车

万能的Alt+Enter可以帮你完成不少编写代码过程当中的dirty work,总结起来大概是这么些:

  • 帮你实现某个接口或抽象基类的方法;
  • 提供你处理当前警告的一些建议;
  • 为你提供处理当前错误的一些建议(不必定是真的错误);
  • 为你简化当前的臃肿代码;

 

8:  Ctrl + F11   当咱们看别人的代码,或者是看本身的代码的时候,老是以为代码太多,因而咱们就用 region来把代码进行了封装注释,但是这样以后别人看代码就很郁闷,Resharper的  File Structure 功能,就能够把region和你的方法都展现出来。

说了这么多,其实就是把对象浏览器和region的长处结合起来,既能够清晰的分类,又能一目了然的找到须要的方法。Resharper这时帮上你的大忙了。用Ctrl+F11,就弹出一个像右边这样的窗口来。

这里面,按照你的region来显示,这样读你的代码的人也受益了。每一个方法的参数,返回值都如UML同样列出来。

  • 若是须要浏览到某个方法,直接双击它的名字;
  • 若是要把某几个方法装进一个新的region,则能够选中方法,点工具栏上的像框的那个图标;点叉则会删除这个region并把相应的方法移到外面来。
  • 若是要调整某个方法的位置,好比把它移到别的region里面去,只须要在这里拖动这个方法便可。
  • 更可喜的是,你想要的从这里浏览、找到全部使用和重构的功能也在这里提供了,在某个方法上右键你就能开始操做。

image

 

9:重构才是王道(上)

重构是一种精神,证实你在致力于提供高效的、精炼的、健壮的代码,而不是凌乱的、晦涩的、漏洞百出的代码。 
在Visual Studio 2005中,微软第一次提供了重构工具。可是不够,远远不够。咱们须要的重构是很是广义的,咱们想要对代码进行快速的调整,快到我在想什么个人工具就能作什么。这才是追求重构的境界。因此在这个意义上,几乎Resharper为你提供了巨大的生产力。 
Visual Studio 2005提供的重构包括了以下:

  1. 封装字段
  2. 提取方法
  3. 提取接口
  4. 提高局部变量
  5. 移除参数
  6. 重命名
  7. 从新排列参数

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

  1. 封装字段 —— Introduce Field
  2. 提取方法 —— Extract Method
  3. 提取接口 —— Extract Interface (另增长了Extract Superclass提取为基类)
  4. 提高局部变量 —— Introduce Variable
  5. 移除参数 —— 移到Change Signature(改变方法签名)中
  6. 重命名 —— Rename (Resharper会根据对象的类型名称,提供你几个可选的最合适的名称)
  7. 从新排列参数 —— 移到Change Signature(改变方法签名)中

我知道不少人都声称本身E文很差,可是,这确实都是很简单的单词,难不倒任何人的。这些重构的功能是人所共知的,下面就告诉你们一些Resharper特有的,首先,重构的快捷键是Ctrl+Shift+R: 
一、对于类,除了提取接口、基类,你还能够移动它到其余的命名空间和移动到别的文件里,这是一个实用的功能,也许你不信,可是我这真的有我的,把全部的business entity都写在一个DataObject.cs里面。你不可思议,我打开它时嘴张了多大。 
二、对于字段,提供了:

  • Safe Delete,会检测全部使用到的地方,并询问如何删除;
  • Pull Member Up和Push Member Down,能够把这个字段在基类和继承类中移动;
  • Use base type where possible,尽量的使用基类,因为ArcGIS平台是基于com组件的,不少时候咱们须要的是IGeometry, IPointCollection这样的接口所公开的属性或者方法,因而你没有必要保存一个polygon对象,而可使用基类型;
  • Encapsulate Field,封装字段,可是这个功能远没有另外一个提供一样功能的操做有用。我能够在后文中来说。

三、对于方法,提供了:

  • 与字段相似的功能,此外;
  • Change Signature,更改函数签名,包括更更名称,返回值类型,参数的各类信息,添加和删除参数,至关实用。若是你是在重写方法上操做,会提示你是否到基类中更改。
  • Make Static,若是Resharper检测到这个方法并无与非静态成员相关联的话,每每会自动地提示你(以黄色横杠的形式出现)能够改成static,若是你自做主张的对一些方法进行修改也无不妥,但后果自负。
  • Extract class from parameter,若是你的参数有七个八个,那是否考虑用一个类来封装这些参数呢,因而这个功能应运而生。
  • Method to Property,顾名思义,若是还在使用GetField()或者SetField(..)的话,你必定是从非.net星来的。

四、在方法体内部: 
Extract Method,不用介绍了吧。 
Introduce Variable/Parameter/Field,取决于你光标所在的对象,能够提供转化的功能。 
Inline Variable:就是把:

IPoint point = new PointClass(); 
point.PutCoords(_point.X, _point.Y);

变成这样子:

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

5、重命名: 
为何重命名值得挑出来说,由于Resharper提供了命名建议这一金子般的功能。因而,想更名为易读性强的名字,不是那么费脑子的事情了。Resharper会根据这个变量的类型,为你提供几个备选名字,名字列表是列在光标位置上的(对方法重命名会弹出对话框),你只须要用方向键选择并敲回车便可,这种名字可能是将类型的名字首字母改成小写得来的,甚至刨根到基类的类型名,你还能够在此基础上加以改进。若是你还在用i,j这种晦涩的名称,请迅速的把他们改成outIndex, pointCount之类可读的名称。 
Resharper其实提供了更先进的功能,在你命名一个变量时,就有快捷键为你提供备选名字,可是Ctrl+Space是咱们宝贵的输入法切换键,因而,我对变量名的敲定,每每是先起了一个较烂的,而后重命名的。 
还有一些更广义上的,帮助你对代码进行调整的功能,我另写一篇吧,否则太长了。

 

重构才是王道(下)

插入代码 
Resharper的Alt+Insert快捷键提供给你插入代码的功能。因为这两个键很是难按(这是个人感觉),真正在使用的时候,我用的是Alt-R-C-G,意指打开Resharper菜单——Code——Generate,都只须要你的左手,这样你能够右手一边比划,一边还在写代码,多酷啊。

  • 生成的代码中最经常使用的是构造函数和属性,当你没有私有字段的时候,只会生成一个空的默认构造函数,并且没有生成属性的功能。在你有私有字段的状况下,生成以前会让你选择哪些私有字段须要做为构造函数的参数,并生成初始化的代码,这样编写重载极其方便。生成属性也相似。
  • 再次经常使用的就是重写基类或者接口的方法了。选择Implement Interface Member或者Override Inheritate Member,Resharper会查找当前类的基类或接口,而后按继承层次列出来,根据你的选择重写或实现这些方法。
  • 不是太经常使用的是生成Equals和GetHashCode方法,在个人应用场景中不多重写它们。可是根据《.NET设计规范》,无论是值类型仍是引用类型的Equals都建议重写,而且应该重写GetHaseCode方法,由于它们相互依赖。若是你有这个需求,那么生成这三个函数必定可以帮你的大忙。

包围代码 
Visual Studio也提供了外侧代码这个功能,你能够按Ctrl+K,Ctrl+S来激活这个功能,虽然我并无任何鄙视Visual Studio的意思,可是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的环境下,Visual Studio已经作到了。那么为何Resharper还要加强这个功能并大获好评的。试问,Visual Studio那窄窄的一行参数提示有没有让你以为憋屈。咱们有19寸的大屏幕,1600的分辨率,却不得不盯着那窄条条,当心翼翼的按着上下键寻找咱们须要的重载。至少,开发Resharper的家伙是受不了这种憋屈的,因而大开大阖版的参数列表出现了,长长的参数重载被以列表的形式展示出来,当你在使用GDT+方法,看到巨大的参数重载时,你会从心底里发出感叹:卖蛋糕的。  同时,Resharper展现参数的快捷键变成了Ctrl+P,若是你以为屏蔽了打印的快捷键简直是在开玩笑的话,那么问问你本身有多少次打印过本身的代码。  浏览打开过的文档  我窃觉得你已经知道了在Visual Studio中切换文档的方式,它们包括:  Ctrl+Alt+上下方向键,能够在打开的文档中切换;  Ctrl+Tab,不只能够在文档以前切换,并能够切换到解决方案文件夹,属性视图去,须要按左右键。  可是怎么样打开最近编辑后关闭的文件呢,Visual Studio很客气的又没有提供此功能,因而留给了Resharper。在我这里这个快捷键是Ctrl+E,Ctrl+E,没错,按两次。若是你的不是,那么在Resharper-View-Recent Files菜单下看看它是什么。由于你会时经常使用到。打开一个文件的列表,用方向键选择并回车就会在编辑器中打开。  不少人说Resharper的性能问题,我想,一个可能的缘由是打开的文档太多了,若是你有时刻关闭不须要的文档的习惯,性能或许不会那么差,而且你能够随时打开这些你关闭了的文档,就像在已经打开的文档中切换同样的方便。  个人团队中没有用到敏捷开发那些高级的东西,可是咱们仍是保持着每次改动都仅涉及两三个文件的好习惯,而且频繁的commite到源代码服务器上去。因此,我每次真正要编辑的文件很少,性能不是问题。  和你们分享了不少Resharper使用的技巧,点点滴滴都已经融入我平常的开发工做中了。固然很不全面,例如与Nunit的集成,因为咱们不是测试驱动,因此没有任何体验,天然也不敢大放厥词;也很主观,我以为它好,你可能以为它很差,萝卜青菜各有所爱。再说,它也不是没有白痴的地方,在文档上点右键增长的一个Close All功能,能够关闭全部打开的文档,关闭了干什么,对着一个空白的屏幕发呆么?我以为原生的“除此以外所有关闭”就够了。还有一个定位的功能(Locate in Solution Explorer),真是没用,若是你在VS选项中设置了,在解决方案管理器中跟踪活动项,那么VS自动就给你定位了。  无论怎么说,它带给我更快更方便的开发体验,把我从一些琐碎的,不人性化的功能中解放出来。从这一点上来讲,我很但愿愈来愈多的人喜欢上它,开始用它,并帮助它更好的发展。

相关文章
相关标签/搜索