ReSharper 2025.2 Help

快速修复示例

快速修复适用于多种情况,范围过大无法一一列举。 ReSharper 在所有支持的语言中共提供了超过 1200 种快速修复。 这里我们将通过一些精选的场景展示如何使用它们:

类型不匹配

每当表达式的类型无法隐式转换为表达式上下文中适用的类型时,ReSharper 会检测到此错误并在编辑器中高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您可以从以下列表中选择一个快速修复:

ReSharper:类型不匹配快速修复

应用建议的快速修复后的效果在下表中说明。

快速修复

效果

强制转换为 string

ReSharper:类型不匹配快速修复

安全强制转换为 string

ReSharper:类型不匹配快速修复

o 的类型更改为 string

ReSharper:类型不匹配快速修复

s 的类型更改为 object

ReSharper:类型不匹配快速修复

调用 ToString()

ReSharper:类型不匹配快速修复

未定义变量

每当 ReSharper 检测到代码中存在未定义变量时,错误会被高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您将看到以下快速修复列表:

ReSharper:未定义变量快速修复

应用建议的快速修复后的效果在下表中说明。

快速修复

效果

创建局部变量 s

创建了一个新的局部变量 s ,建议您选择所需的类型。

在包含方法中创建参数 s

在方法签名中添加了一个新参数:

ReSharper:未定义变量快速修复

创建其他

打开一个子菜单,您可以选择在相应的类中创建字段或属性。 例如,如果您选择创建字段,则会在当前类中创建一个新的私有字段 s。 以下建议将帮助您选择新字段的正确类型:

ReSharper:未定义变量快速修复

更改所有 s

如果您选择 更改所有 ,将显示以下建议:

ReSharper:未定义变量快速修复

只需输入一次新名称;ReSharper 会更改未定义变量的所有其他出现位置:

ReSharper:未定义变量快速修复

未定义方法调用

每当 ReSharper 检测到代码中调用了未定义的方法时,错误会被高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,ReSharper 会显示以下快速修复列表:

ReSharper:未定义方法调用快速修复

应用快速修复后,代码会被修改,如下表所示:

快速修复

效果

创建方法

此快速修复声明了一个新方法,其签名来源于方法调用,方便了偏好自顶向下编程的开发者。 在我们的示例中,ReSharper 创建了以下声明,并正确推测了返回类型:

ReSharper:未定义方法调用快速修复

ReSharper 还会为新方法的参数建议适用的类型和名称:

ReSharper:未定义方法调用快速修复

创建其他

此子菜单包括涉及创建辅助代码的其他快速修复。 例如:

在包含方法中创建参数

此快速修复从未解析的符号创建当前方法中的新参数,但不会更新其基方法或继承者。

在包含方法中创建参数并更新层次结构

此快速修复从未解析的符号创建当前方法中的新参数,并将此参数引入方法可能具有的任何基成员和继承者中。

更改所有

类似于 未定义变量 的相应快速修复,此快速修复允许您快速替换符号 someMethod 的所有出现位置。

遗忘的方法返回

如果一个方法需要返回值,但您忘记提供 return 语句,ReSharper 会通过高亮显示有问题方法的结束括号来提醒您。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您将看到以下快速修复列表:

ReSharper:遗忘的方法返回快速修复

快速修复

效果

添加返回语句

应用快速修复后,ReSharper 会添加一个返回 nullreturn 语句。

使方法返回 void

应用快速修复后,ReSharper 会将方法的初始返回类型替换为 void

缺少 Using 指令

每当代码中有一个类型名称无法解析,因为您忘记在文件中编写相应的 using 指令时,会弹出一个小窗口建议导入该类型:

ReSharper:命名空间导入快速修复

按下 Alt+Enter 后,将插入适当的 using 指令。 如果有多个名称匹配的类型,您将被要求选择您希望使用的类型(有关更多信息,请参阅 导入命名空间)。

If you chose not to import a required namespace when the popup was displayed, or if you disabled 在编辑器中显示“导入缺失引用”弹窗 on the 代码编辑 | 类型导入 page of ReSharper 选项 Alt+R, O , you can import a type at any time by placing the caret at the type, pressing Alt+Enter and choosing the corresponding quick-fix.

ReSharper:缺少命名空间导入的快速修复

您可能希望某些类型或命名空间不被建议,例如,如果您的解决方案中有类似于系统类型的内容,例如 MyFramework.MyCollections.List ,但实际上并未使用它。 To exclude such items from the suggestions, add them to the 从导入和补全中排除 list on the 代码编辑 | 类型导入 page of ReSharper 选项 Alt+R, O .

条目的格式为 Fully.Qualified.NameFully.Qualified.Name.Prefix**Fully.Qualified.Name.Suffix。 泛型类型的指定格式为 List`1

缺少 async 修饰符

如果您的方法包含 await 运算符,但未定义为异步,ReSharper 会检测到此不匹配并提供相应的快速修复来解决此问题。

在此之前:

ReSharper:缺少 async 修饰符快速修复

应用快速修复:

ReSharper:缺少 async 修饰符快速修复

在此之后:

ReSharper:缺少 async 修饰符快速修复

将循环转换为 LINQ 表达式

通过 C# 3.0 和 LINQ,开发者可以更轻松地编写数据密集型代码,直接向编译器描述其意图。 ReSharper 检测到可以使用 LINQ 语法重写的代码,并提供自动执行转换的选项:

在此之前:

ReSharper:将循环转换为 LINQ 表达式快速修复

应用快速修复:

ReSharper:将循环转换为 LINQ 表达式快速修复

在此之后:

ReSharper:将循环转换为 LINQ 表达式快速修复

迁移到方法参数和返回值中的 IEnumerable

ReSharper 扫描您的代码库,以检测可以安全返回和接受 IEnumerable 而不是更具体类型(如 ArrayListArrayList )的方法:

在此之前:

ReSharper:迁移到方法参数和返回值中的 IEnumerable

应用快速修复:

ReSharper:迁移到方法参数和返回值中的 IEnumerable

在此之后:

ReSharper:迁移到方法参数和返回值中的 IEnumerable

将赋值语句转换为对象初始化器

ReSharper 提供了上下文操作和快速修复,将赋值语句转换为对象初始化器。 上下文操作允许您逐个将字段赋值添加到初始化器,而快速修复则一次性添加所有字段赋值。 以下是快速修复的工作方式:

在此之前:

ReSharper:将赋值语句转换为对象初始化器

应用快速修复:

ReSharper:将赋值语句转换为对象初始化器

在此之后:

ReSharper:将赋值语句转换为对象初始化器

将静态方法调用转换为扩展方法调用

当您以传统 C# 静态方法的方式调用扩展方法时,ReSharper 帮助您快速遵循标准的扩展方法调用实践:

在此之前:

ReSharper:将静态方法调用转换为扩展方法调用

应用快速修复:

ReSharper:将静态方法调用转换为扩展方法调用

在此之后:

ReSharper:将静态方法调用转换为扩展方法调用

将匿名方法转换为 lambda 表达式

ReSharper 建议将匿名方法转换为 lambda 表达式。 反向功能作为上下文操作提供。

在此之前:

ReSharper:将匿名方法转换为 lambda 表达式

应用快速修复:

ReSharper:将匿名方法转换为 lambda 表达式

在此之后:

ReSharper:将匿名方法转换为 lambda 表达式

转换为自动属性

ReSharper 使传统的基于私有字段的属性快速转换为 C# 3.0 中实现的自动属性。 更多信息请参阅 使用自动属性

在此之前:

ReSharper:转换为自动属性

应用快速修复:

ReSharper:转换为自动属性

在此之后:

ReSharper:转换为自动属性

使类型参数不变

当类型参数的使用违反其变体时,ReSharper 建议将参数设为不变:

在此之前:

ReSharper:使类型参数不变

应用快速修复:

ReSharper:使类型参数不变

在此之后:

ReSharper:使类型参数不变
最后修改日期: 2025年 9月 27日