一:Reshaper是什么

即便是那些整天攻击 .NET 和 C# 的人,也常常不得不承认 Visual Studio 确实是个够强大的 IDE,除非他认为更少的 IDE 功能和命令行调试才是更强大的。可是,即便如此,仍阻止不了一些第三方的个人和厂商开发出一些插件来让 VS 变得更强大。Reshaper 就是这样一个 VS 插件,它提供了一些在 VS 基础上更方便于程序员使用的功能,当然,劣势是:它耗掉了更多的内存,有可能让你不够强大的开发机变得更慢。

安装完毕后,在 VS 的 Menu 里,多了个 RESHAPER 。

二:设置

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 的提示。

经过了这些设置后,并且,如果你的项目中引入了 StyleCop 标准设置文档,如下:

你的 IDE 就会提示你当前代码是否符合 StyleCop 的规范要求,如下:

三:万能的 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 结合的问题。

Reshaper介绍相关推荐

  1. Reshaper的使用

     一:Reshaper是什么 即便是那些整天攻击 .NET 和 C# 的人,也常常不得不承认 Visual Studio 确实是个够强大的 IDE,除非他认为更少的 IDE 功能和命令行调试才是更 ...

  2. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  3. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  4. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  5. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  6. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  7. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

  8. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

  9. k8s核心组件详细介绍教程(配超详细实例演示)

    本文实验环境基于上篇文章手把手从零开始搭建k8s集群超详细教程 本文根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps学习总结而来 k8s核心组件介绍 1 ...

最新文章

  1. C语言网络编程:多路IO select实现多客户端
  2. 深度对比Jackson和Fastjson,最终我还是选择了...
  3. yum安装rz,sz
  4. 小孩学python有意义吗-世界冠军教练告诉你:少儿编程这些坑,能不踩就别踩!...
  5. 13. Leetcode 349. 两个数组的交集 (数组-分离双指针)
  6. ubuntu版php开发工具,Ubuntu 中搭建 LAMP 及 php 开发工具
  7. opencv 常见细碎问题解决
  8. LeetCode 01. 两数之和
  9. unity text不能刷新_unity自走棋制作(二)-UI制作
  10. 数据算法之折半插入排序(binInsertSort)的Java实现
  11. python可以在苹果系统上装吗_在Windows、Mac和 Linux系统中安装Python与 PyCharm
  12. python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法
  13. exception java doc_在javadoc中,標簽@throws和@exception之間有什么區別?
  14. 数据结构之链表(Linked list)
  15. 参考文献引用格式实例
  16. 熵权法计算权重原理python实现
  17. pythonppt_Python简介ppt
  18. DNS协议解析与DNS模拟服务器-基于golang实现
  19. [SQLITE_BUSY]问题简析与解决
  20. 257套工业机器人SW设计3D图纸 焊接机械手/发那科ABB安川臂模型

热门文章

  1. ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
  2. CAN/CANFD总线基础培训
  3. 查看linux操作系统版本--实用
  4. 使用ZAP寻找敏感文件和目录
  5. window10怎么修改用户名以及C:/Users/后面的用户名
  6. 实现unity内2D物品延迟跟随鼠标移动
  7. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren
  8. 智能创新引导工具软件——项目总结报告
  9. CSS3的:nth选择器
  10. 初学者必会的100个编程代码