.NET 开发中最令人印象深刻的生产力工具之一是ReSharper[1]。每次发布时,我都对它的功能感到震惊。不要误会我的意思,我喜欢 Visual Studio,而且它也变得越来越好。但每当我认为 Visual Studio 迎头赶上时,我就会发现一些令人惊叹的新功能,让我再次依赖 ReSharper 和Rider[2]。
因此,在这篇博文中,我将向您介绍 ReSharper 的 6 个更令人上瘾的功能。那些你可能不知道的,但一旦你知道就不能没有。
1. Ctrl + T、Ctrl + T + T、Ctrl + T + T + T
优秀的Ctrl + T
命令大家都知道,它可以让你快速查找字段、文件和类型。但是,您可能不知道可以T
多次单击该按钮。这使得它Ctrl + T + T
和Ctrl + T + T + T
. 第一个选项允许您只搜索类型。
第二个选项Ctrl + T + T + T
允许您搜索解决方案中的任何文本。有点像 Visual Studio 的Ctrl + Shift + F
,只是更好(以我的拙见)。
2. 打开 Ctrl + T 结果作为列表
在大型应用程序中导航可能非常困难。您并不总是记得要查找的确切字段名称。或者您可能还记得您正在寻找带有单词 的内容Home
,但是适合该搜索的字段和类的数量是巨大的。使用Ctrl + T
仅显示适合一个屏幕的第一批结果。但是,如果您搜索某些内容并点击Shift + Enter
,您将在工具窗口中看到所有结果。就这样:
现在,您可以在这些结果中快速滚动或过滤以找到您的意思。这太方便了,我觉得我什至不配拥有它。
3. 价值来源,价值归宿
下一个功能非常令人上瘾,一旦您开始使用它,您将无法停止。
ReSharper 允许您检查任何变量并查看所有可能的调用堆栈,您可以从哪里获取它(作为参数)以及它的去向(作为参数)。让我们从你从哪里得到它开始。要使用该功能,请使用Inspect this的Ctrl + Alt + Shift + A
快捷方式或在右键单击上下文菜单中找到Inspect。
单击Value Origin将显示如何recording
接收的所有可能路径。像这样:
在这种情况下,我们得到了它作为方法的参数ShouldStopRecording
,这可能从任何一种方法得到它AddRecordingResult
,ContinueRecording
,GetLastRecording
,或GetRunningSessions
。
要查看recording
变量的所有可能目的地,请单击Value Destination,它将显示:
这显示了这个变量将被使用或作为参数传递的所有地方。在这种情况下,您可以看到它仅ShouldStopRecording
用于访问其属性。
这两个功能都使代码变得非常容易。无需使用按方法查找所有引用或查找用法,您将能够找到特定变量的路径。
4. Postfix 补全模板
大家都知道 Visual Studio 片段。如果您不知道,请查看我的另一篇文章您应该知道的 Visual Studio 中的 5 个生产力技巧[3]。ReSharper 有一个类似的功能,允许您在输入表达式后将其插入到模板中。这是一个例子。
一旦我点击Enter
或Tab
,ReSharper 会自动创建一个foreach
语句。
这个技巧可用于任何集合。
这是另一个例子:
选择if
后缀将创建以下语句:
有很多这些,您可以在此处[4]查看完整列表。
5. 全解决方案分析
通过解决方案范围的分析,ReSharper 不断分析您的整个解决方案并巧妙地发现错误和警告。这些都是编译错误和运行时错误。R# 在这方面很聪明。这可以用作一种健全的健康检查。每当您重构大量代码时,此功能对于确保您没有犯任何错误非常有用。任何明显的错误是——R# 还没有找到逻辑错误,而不是开发人员。
这是它的样子:
出于充分的理由,默认情况下关闭解决方案范围的分析。它吃掉了性能。至少在使用 Visual Studio + ReSharper 时。另一方面,如果您使用的是 Rider,您可能甚至不会注意到它已开启。
6. 提取类
ReSharper 最令人印象深刻的事情之一是它的重构功能。它们中的大多数都可以从Refactor This菜单中使用Ctrl + Shift + R
快捷方式访问。我最喜欢的重构之一是Extract Class。它会将字段、属性和方法等成员提取到一个新类中,该类将在原始类中创建为字段。下面是一个例子:
单击Ctrl + Shift + R
成员Sort 时,会出现以下对话框:
您可以在此处选择要提取的成员。R# 通过显示用法来帮助您。在上面的例子中,Mean
使用Sort
和你可以一起提取它们。
一旦您选择了提取的类的名称(我选择了Sorter
)和对提取的引用的名称 ( _sorter
),您将得到以下结果:
这使得将大类分解为小类的常见操作变得更加容易。
就是这样,享受快乐的编码。
https://michaelscodingspot.com/productivity-in-resharper-and-rider/
References
[1]
ReSharper: https://www.jetbrains.com/resharper/[2]
Rider: https://www.jetbrains.com/rider/[3]
您应该知道的 Visual Studio 中的 5 个生产力技巧: https://michaelscodingspot.com/productivity-tips-in-visual-studio/[4]
此处: https://www.jetbrains.com/help/resharper/Postfix_Templates.html#list