快速修复示例
快速修复适用于多种情况,范围过大无法一一列举。 JetBrains Rider 在所有支持的语言中共提供了超过 1200 种快速修复。 这里我们将通过一些示例情况展示如何使用它们:
类型不匹配
每当表达式的类型无法隐式转换为表达式上下文中适用的类型时,JetBrains Rider 会检测到此错误并在编辑器中高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您可以从以下列表中选择一个快速修复:

应用建议的快速修复后的效果在下表中说明。
快速修复 | 效果 |
|---|---|
转换为 | |
安全转换为 | |
将 | |
将 | |
调用 |
未定义变量
每当 JetBrains Rider 检测到代码中未定义的变量时,错误会被高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您将看到以下快速修复列表:

应用建议的快速修复后的效果在下表中说明。
快速修复 | 效果 |
|---|---|
创建局部变量 | 创建了一个新的局部变量 |
在包含的方法中创建参数 | 在方法签名中添加了一个新参数: ![]() |
创建其他 | 打开一个子菜单,您可以选择在相应的类中创建字段或属性。 例如,如果您选择创建字段,则会在当前类中创建一个新的私有字段 ![]() |
更改所有 | 如果您选择 全部更改 ,将显示以下建议: ![]() 只需输入一次新名称;JetBrains Rider 会更改未定义变量的所有其他出现位置: |
未定义方法调用
每当 JetBrains Rider 检测到代码中对未定义方法的调用时,错误会被高亮显示。 将插入符号放在高亮错误处并按下 Alt+Enter 后,JetBrains Rider 会显示以下快速修复列表:

应用快速修复后,代码的修改效果如下表所示:
快速修复 | 效果 |
|---|---|
创建方法 | 此快速修复声明了一个新方法,其签名来源于方法调用,方便偏好自顶向下编程的开发者。 在我们的示例中,JetBrains Rider 创建了以下声明,并正确推测了返回类型: ![]() JetBrains Rider 还会为新方法的参数建议适用的类型和名称: ![]() |
创建其他 | 此子菜单包含涉及创建辅助代码的其他快速修复。 例如:
|
全部更改 | 与针对 未定义变量的相应快速修复类似,此快速修复允许您快速替换符号 |
遗忘的方法返回值
如果一个方法需要返回一个值,但您忘记提供 返回 语句,JetBrains Rider 会通过高亮显示有问题方法的结束括号来提醒您。 将插入符号放在高亮错误处并按下 Alt+Enter 后,您将看到以下快速修复选项:

快速修复 | 效果 |
|---|---|
添加返回语句 | 应用快速修复后,JetBrains Rider 会添加一个 |
使方法返回 void | 应用快速修复后,JetBrains Rider 会将方法的初始返回类型替换为 |
缺少 Using 指令
当您的代码中有一个类型名称无法解析,因为您忘记在文件中编写相应的 using 指令时,一个小弹窗会建议导入该类型:

按下 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 JetBrains Rider 设置 Ctrl+Alt+S, you can import a type at any time by placing the caret at the type, pressing Alt+Enter and choosing the corresponding quick-fix.

您可能希望某些类型或命名空间不被建议,例如,如果您的解决方案中有类似于系统类型的内容,比如 MyFramework.MyCollections.List ,但实际上并未使用它。 To exclude such items from the suggestions, add them to the 从导入和补全中排除 list on the page of JetBrains Rider 设置 Ctrl+Alt+S.
条目的格式为 Fully.Qualified.Name、 Fully.Qualified.Name.Prefix* 或 *Fully.Qualified.Name.Suffix。 泛型类型的指定格式为 List`1。
缺少 async 修饰符
如果您有一个包含 await 运算符的方法,但未定义为异步,JetBrains Rider 会检测到此类不匹配,并提供使用相应快速修复来解决此问题的选项。
之前: | ![]() |
应用快速修复: | ![]() |
之后: | ![]() |
将循环转换为 LINQ 表达式
通过 C# 3.0 和 LINQ,开发人员可以更轻松地编写数据密集型代码,直接向编译器描述其意图。 JetBrains Rider 检测到可以使用 LINQ 语法重写的代码,并提供自动执行转换的选项:
之前: | ![]() |
应用快速修复: | ![]() |
之后: | ![]() |
迁移到方法参数和返回值中的 IEnumerable
JetBrains Rider 扫描您的代码库,以检测可以安全地返回和接受 IEnumerable 而不是更具体类型(如 数组、 列表 或 ArrayList )的方法:
之前: | ![]() |
应用快速修复: | ![]() |
之后: | ![]() |
将赋值语句转换为对象初始化器
JetBrains Rider 提供了上下文操作和快速修复,用于将赋值语句转换为对象初始化器。 上下文操作允许您逐一将字段赋值添加到初始化器,而快速修复会一次性添加所有字段赋值。 以下是快速修复的工作方式:
之前: | ![]() |
应用快速修复: | ![]() |
之后: |
|
将静态方法调用转换为扩展方法调用
当您以传统 C# 静态方法的方式调用扩展方法时,JetBrains Rider 帮助您快速遵循标准的扩展方法调用规范:
之前: | |
应用快速修复: | ![]() |
之后: |
将匿名方法转换为 lambda 表达式
JetBrains Rider 建议将匿名方法转换为 lambda 表达式。 反向功能作为上下文操作提供。
之前: |
|
应用快速修复: | ![]() |
之后: |
|
转换为自动属性
JetBrains Rider 使得将传统的基于私有字段的属性快速转换为 C# 3.0 中实现的自动属性变得简单。 如需了解更多信息,请参阅 使用自动属性。
之前: | ![]() |
应用快速修复: | ![]() |
之后: |
|
使类型参数不变
当类型参数的使用违反其变体时,JetBrains Rider 建议将参数设为不变:
之前: | ![]() |
应用快速修复: | ![]() |
之后: | ![]() |






























