ReSharper在C#、VB.NET、XAML、XML、ASP.NET、ASP.NET MVC、ASP.NET Core、HTML、ResX 和 Protobuf 中提供了连续代码质量分析功能。 甚至可以在您编译之前立即检测到错误和问题。
软件功能集
ReSharper不仅能够分析设计时中的打开文件,还可扩展其分析能力以覆盖整个解决方案。
假设您将某个成员的可见性从公开改为内部,并假设此成员仅在当前程序集内使用。 现阶段,ReSharper在当前文件中没有找到错误。 然后,开启解决方案级分析,ReSharper会发现某些地方出错。 您可以跳到解决方案中的下一个错误,并发现有人在当前项目外部使用了此成员。
您需要做的就是明确开启解决方案级分析,在此功能分析您的解决方案的代码后,使用专用窗口查看错误列表。
即使不打开该窗口,您仍然可以使用Go to Next Error/Warning in Solution(Shift+Alt+PageDown)和Go to Previous Error/Warning in Solution(Shift+Alt+F12)命令,在解决方案中的错误之间轻松导航。
过去,尝试跟踪代码中的调用序列可能会打开多个Find Results窗口并丢失上下文。 为了解决此问题,ReSharper可以在单个工具窗口中将整个调用序列可视化。 此功能称为Call Tracking,让您可以查看代码中的调用链并进行导航。
得益于对事件、接口和闭包的支持,ReSharper的Call Tracking较Visual Studio自有的调用层次结构有明显的改进。
要可视化调用序列,请选择 ReSharper | Inspect | Outgoing Calls 或 ReSharper | Inspect | Incoming Calls,或者使用 Inspect This 快捷功能。
ReSharper让您可以在单个工具窗口(名为Inspection Results)中查找所有代码质量问题、冗余、语言使用机会和代码改进建议。
要查找特定范围内的代码问题,请选择ReSharper | Inspect | Code Issues in Solution或ReSharper | Inspect | Code Issues in Current Project。 或者,在Solution Explorer中选择节点,点击右键,然后选择Find Code Issues。
Inspection Results窗口让您可以筛选检测到的问题,按照问题类型、严重性、类别和其他属性对结果进行重新分组,并将结果导出到文件中。
值跟踪可为您提供程序中数据流的重要相关信息。 在源代码中的任何位置,您可以指向变量、参数、字段或属性,并要求ReSharper进行检查。 然后,您会看到它的值如何在程序中流动,返回到它的源或直接流到消费者。
值跟踪可以帮助您确定不正确的特定值如何传递到程序中的特定点,以及它可能继续传到的位置。 这将有助于您调查可能的NullReferenceExceptions、不恰当的行为和您获得不正确值的原因。
要可视化包含特定值的数据流,请选择 ReSharper | Inspect | Value Origin或ReSharper | Inspect | Value Destination,或者使用 Inspect This 快捷键功能。