ReSharper 2025.2 Help

创建自定义代码检查和快速修复

如果您在代码中发现问题或不良实践,但 ReSharper 未检测到,您可以创建自定义代码检查。 此外,您可以指定应替换问题代码的代码,换句话说,自定义 快速修复

如果正确创建了自定义检查,它将能够在您的代码库中找到所有类似问题,并直接在编辑器中突出显示问题代码。

要创建自定义检查,您可以利用 结构化搜索和替换 机制。

为了说明如何创建自定义检查,假设我们不喜欢以下代码:

string line; var tr = new MyReader(); try { line = tr.Read(); } finally { tr.Dispose(); }

…并希望将其替换为: 并希望将其替换为:

string line; using(var tr = new MyReader()) { line = tr.Read(); }

创建带有快速修复的自定义代码检查

  1. 在编辑器中,选择应视为问题的一段代码。

  2. 右键单击所选内容,然后选择 使用模式搜索

  3. ReSharper 显示 Search with Pattern对话框,其中选定的代码已预解析为搜索模式。 某些标识符、参数、类型等会自动替换为占位符:

    ReSharper 的自定义代码检查。 原始检查模式
  4. 为了使检查模式更通用,请编辑已识别的 占位符 :并用更多占位符替换其他代码项。 例如,我们可以将示例中 try 块中的单个语句替换为匹配任意数量语句的占位符。

  5. 要为问题指定快速修复,请单击对话框右上角的 替换

    替换模式 区域中,指定应用于替换问题代码的模式。 对变量代码项使用相同的占位符。

    以下是我们示例中改进的模式和快速修复的外观:

    ReSharper 的自定义检查。 改进的模式和自定义检查的快速修复
  6. 单击 保存 ,然后单击 关闭 以完成操作。 自定义检查使用 智能保存逻辑保存在模式目录中。

    请注意,问题代码片段尚未在编辑器中突出显示。 我们需要再做一些事情才能使其生效。

  7. 从主菜单中选择 ReSharper | 选项 或按 Alt+R O ,然后在左侧选择 代码检查 | 自定义模式

  8. 在模式列表中,找到与您刚创建的自定义检查对应的模式。 默认情况下,其 严重性级别设置为“不要显示”,这意味着 ReSharper 将忽略与您的自定义检查对应的问题。

    要启用检查,请选择其他任何严重性级别,例如“建议”。

  9. 最后,我们可以指定将显示在自定义检查及其对应快速修复中的描述。

    为此,请双击模式,然后在打开的 编辑高亮模式 对话框中,在相应字段中指定描述:

    ReSharper 的自定义检查。 检查和快速修复的描述
  10. 保存对模式的更改,关闭它,然后再次单击 保存 ,位于 ReSharper 选项的 自定义模式 页面上。

现在问题已在编辑器中被识别并突出显示。 当您将鼠标悬停在其上时,会显示指定的描述:

ReSharper 的自定义检查。 检查和快速修复的描述

由于我们改进了检查模式,即使构造函数调用中的参数数量或语句数量不同,它也会找到类似的问题:

ReSharper 的自定义检查。 检查和快速修复的描述

自定义检查的快速修复看起来并且工作方式与内置的 快速修复完全相同。

ReSharper 的自定义检查。 检查和快速修复的描述

如果您需要在更大的范围内查找自定义模式描述的问题,您有几种选择:

  • 在 ReSharper 选项的 代码检查 | 自定义模式 页面上选择检查模式,然后单击页面工具栏上的 立即搜索

  • 在所需范围内运行代码检查 ,然后与检测到的其他代码问题一起分析您的自定义问题。

  • 使用 查找类似问题操作,该操作会在您按下编辑器中突出显示代码上的 Alt+Enter 时出现在检查选项中。

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

功能在 C++ 中不可用

此功能在 ASP.NET 中可用

此功能在 Razor 中可用

此功能在 XAML 中不可用

此功能在资源文件中不可用

此功能在构建脚本文件中不可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

最后修改日期: 2025年 9月 27日