`
zxlyecf2
  • 浏览: 133520 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VS 自动提示生成插件ReSharper 配置及用法

    博客分类:
  • C#
 
阅读更多


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

 2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢?我是使用re的快捷键

3:

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

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

可以手动勾上。

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

vs编辑器变不会实时提示错误。因此卸载Resharper后,需要把这两个选项重新勾选上。

4: use  var

use implicitly typed local variable declaration



 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里面去,只需要在这里拖动这个方法即可。
  • 更可喜的是,你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了,在某个方法上右键你就能开始操作。



 

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: 
1、对于类,除了提取接口、基类,你还可以移动它到其他的命名空间和移动到别的文件里,这是一个实用的功能,也许你不信,但是我这真的有个人,把所有的business entity都写在一个DataObject.cs里面。你难以想象,我打开它时嘴张了多大。 
2、对于字段,提供了:

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

3、对于方法,提供了:

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

4、在方法体内部: 
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自动就给你定位了。 
不管怎么说,它带给我更快更方便的开发体验,把我从一些琐碎的,不人性化的功能中解放出来。从这一点上来说,我很希望越来越多的人喜欢上它,开始用它,并帮助它更好的发展。

  • 大小: 71.4 KB
  • 大小: 104.8 KB
  • 大小: 194.9 KB
  • 大小: 138.3 KB
  • 大小: 63.4 KB
分享到:
评论

相关推荐

    用Visual Studio 开发工具 如何快速批量生成属性的 get 和set 方法 .

    总之,Visual Studio提供了多种方式来帮助开发者快速生成属性的get和set方法,无论是通过内置的重构功能,还是利用代码片段或第三方插件如Resharper。熟练运用这些工具,能够使你在编程过程中更加得心应手。

    vs中各种好用的插件,有番茄助手,自动对齐小工具等

    1. **Resharper**:这是一个非常强大的代码分析和重构工具,它提供了代码提示、错误检查、快速修复、代码格式化等功能,极大地提升了开发效率。 2. **GitLens**:GitLens增强了VS内置的Git功能,提供更丰富的历史...

    ReSharper常用快捷键

    ReSharper是一款强大的Visual Studio插件,它为C#、VB.NET、ASP.NET、JavaScript等语言提供了丰富的代码分析、重构和编码辅助功能。本资源聚焦于ReSharper的常用快捷键,这些快捷键能显著提高开发效率,使代码编写...

    .net自动生成三层代码模板

    本文将深入探讨如何使用.NET来自动生成三层架构的代码模板,并介绍相关实体类的生成。 首先,表现层是用户与应用交互的部分,通常包括ASP.NET Web Forms、MVC或Blazor等技术。这一层负责接收用户输入,显示输出,并...

    VS2010 常用插件

    8. **AnkhSVN**:对于使用Subversion作为版本控制系统的开发者,AnkhSVN是一个很好的插件,它将SVN的功能无缝集成到VS2010中,便于进行版本控制操作。 9. **SQL Server Data Tools (SSDT)**:对于数据库开发,SSDT...

    自动属性生成类试于一个项目开发工具,当每次开发时,由于数据库里的表很多,生成实体类时,手写很烦,但也有现成的工具生成,但是那工具操作烦锁,而且生成的无用代码很多

    此外,还可以使用一些IDE插件,如Visual Studio的Resharper或JetBrains Rider,它们提供了代码生成和重构的功能,可以方便地为现有数据库生成实体类,同时避免生成过多冗余代码。 总的来说,自动属性是C#中提高代码...

    visual studio 2012常用官方插件

    只需按下快捷键,就能为方法、类和属性自动生成XML注释,符合XML文档注释标准。 4. Resharper:虽然Resharper不是官方插件,但它是Visual Studio最著名的第三方插件之一。它提供了代码分析、重构、代码导航、单元...

    VS2010插件

    5. **GhostDoc**:GhostDoc是一款文档生成工具,可以自动为方法、类和属性生成注释。当编写XML注释时,GhostDoc可以为你提供简短的描述,极大地减少了编写文档的时间。这对于遵循严格的文档规范和团队协作尤其有用。...

    VS2010常用插件包

    VS2010常用插件包是一个集合,旨在提升Visual Studio 2010开发环境的效率和便利性。这个包包含了一些广受欢迎且实用的插件,它们可以帮助程序员更高效地编写、管理和理解代码。以下将详细介绍这些插件及其功能。 1....

    VS2013代码注释

    例如,Resharper是一款流行的插件,它提供了更丰富的代码注释和文档生成选项,可以自动检测未注释的代码并提示用户添加。 6. **代码风格与规范**: 在团队开发中,保持一致的代码注释风格是十分重要的。VS2013可以...

    vc 插件

    为了充分利用VC插件,开发者需要了解每个插件的功能和用法,同时关注插件的兼容性,确保其与使用的VC++版本以及项目需求相匹配。定期更新插件也很重要,因为开发者会不断修复问题并添加新特性。此外,对于"by one...

    vs关键配置相关信息1

    以下将详细探讨一些VS中的关键配置项,这些配置项可以帮助开发者更好地理解和使用VS。 1. **编译与构建设置**:VS允许用户自定义编译和构建过程,例如调整编译器选项,设置生成调试或发布版本,以及选择目标平台...

    c#批量生成属性的宏

    在VB.NET中,可以使用`My.VS.TextTemplating`或`Microsoft.VisualBasic.PowerPacks.Vs.TextTemplating`命名空间下的类来实现Text Template功能。 总的来说,批量生成属性的宏或代码生成工具能够显著提升开发效率,...

    一个便捷编程的vc插件

    - 配置:部分插件需要在设置中进行个性化配置,如快捷键设置、语言选择等。 3. 插件类型与功能 - **重构工具**:如Refactor! for Visual C++,提供代码重命名、提取方法等功能,帮助保持代码整洁。 - **代码分析...

    VissulStudio2010插件集合

    GhostDoc 是一个文档生成插件,它可以自动生成XML注释,方便编写API文档。只需一键,即可为方法、类和属性生成符合标准的文档注释,大大简化了文档编写工作。 6. **Refractor! Pro** Refractor! Pro 提供了高级的...

    resharper-introduce-ns-alias:ReSharper 重构以引入命名空间

    2. **设置别名**:ReSharper会提示你输入新的别名名称,或者自动生成一个基于原始命名空间的简写。 3. **确认应用**:预览重构结果,检查是否所有相关引用都被正确替换。如果满意,点击“Apply”完成重构。 4. **...

    ReSharp插件

    ReSharper的特性包括智能代码完成、快速修复、导航、代码格式化、查找用法、单元测试集成等。这些功能帮助开发者减少代码错误,提高代码质量和可维护性。 在压缩包内的URL文件,如"访问 [搜妹子] 高清妹纸图片网站....

    vs2005实用小助手

    **Visual Studio 2005 实用小助手详解** Visual Studio 2005(简称VS2005)是微软公司开发的一款强大的...对于压缩包中的vx2005文件,可能是特定的VS2005插件或扩展,具体功能和使用方法需要解压后查看其详细说明。

    按住左键点击右键,和按住右键点击左键,c#

    1. `Test.resharper`:这是JetBrains Resharper的配置文件,Resharper是一款强大的Visual Studio插件,提供了代码分析、重构、代码生成等功能,有助于提升开发效率和代码质量。 2. `Test.sln`:这是一个Visual ...

Global site tag (gtag.js) - Google Analytics