C++ 的重构
执行重构
将插入符号放在符号处,选择您想要重构的代码片段,或在工具窗口中选择一个项目。
请执行以下操作之一:
从主菜单中选择 ,然后选择所需的重构。 此菜单中可用的重构列表取决于当前上下文。 如果 JetBrains Rider 无法为上下文建议任何重构,则整个菜单将被禁用。
从主菜单中选择 ,或按 Ctrl+Alt+Shift+T 显示适用的重构列表,然后选择其中一个。 您还可以在选择的上下文菜单中选择 重构此内容。
使用默认键盘快捷键(Windows、Linux/(macOs )分配给特定重构的快捷键,或 分配自定义快捷键 给您喜欢的重构命令。
如果所选的重构需要用户输入,将会打开重构向导。 请注意,向导的对话框不是模态的,因此您可以在向导打开时编辑代码。
如果重构操作会导致代码冲突(例如重复的名称、可见性冲突等),向导会在最后一步显示冲突列表,然后您再应用重构。 对于某些冲突,向导还可以建议快速修复。 如需了解更多信息,请参阅 解决重构中的冲突。
重构完成后,所有更改(包括其他文件中的更改)都会作为单个操作注册。 因此,您可以使用 撤销 操作 Ctrl+Z ,通过单个按键撤销所有这些更改。
在您修改编辑器中的代码后,某些重构功能会立即可用。 如需了解更多信息,请参阅 就地重构
更改签名
更改签名重构允许您对函数的签名进行一种或多种不同的修改。 所有的用法、实现和重写都会相应更新。
您还可以使用专用快捷键 Ctrl+F6 调用此重构。

转换为作用域枚举
转换为作用域枚举 重构帮助您将 C 风格的枚举声明转换为 C++11 作用域枚举。 要调用此功能,请将插入符号放在枚举器上,然后从 重构此内容 菜单中选择 转换为作用域枚举 ,或从主菜单中选择 :

提取方法
此重构允许您基于选定的代码片段创建一个新方法。 JetBrains Rider 会分析选定的语句,并检测可以转换为方法参数或表示其返回值的变量。
您还可以使用专用快捷键 Ctrl+Alt+M 调用此重构。
假设您希望将计算判别式的逻辑提取到一个单独的方法中:

在 提取方法 对话框中,您可以选择方法参数、返回值并预览生成的方法:

一旦您点击 下一步 ,新方法就会被创建,并且选定的表达式会被方法调用替换。

引入字段
此重构允许您基于选定的表达式创建一个新字段,用该表达式或构造函数初始化它,并将当前类型中表达式的出现替换为新引入字段的引用。
您还可以使用专用快捷键 Ctrl+Alt+F 调用此重构。
在下面的示例中,我们使用此重构将两个相同字符串的出现替换为一个新的私有字段,并从现有构造函数中对其进行初始化:
引入命名空间别名
此重构帮助您为命名空间的使用创建一个命名空间别名,并将当前选定的使用或文档中的所有使用替换为该别名。 根据选定的用法,命名空间别名会在尽可能接近用法的作用域内声明。
要调用此重构,请将插入符号放在命名空间使用处,然后选择 Ctrl+Alt+Shift+T 或从主菜单中选择 ,然后在 重构此内容 弹出窗口中选择 引入命名空间别名。 如果文档中存在命名空间使用的多个出现,您可以选择替换当前使用或所有使用。
在下面的示例中,我们使用此重构为 SpaceOne::SpaceTwo 命名空间添加一个命名空间别名。
引入/内联 typedef
引入 typedef 重构让您可以快速为选定的数据类型创建一个 typedef ,并将选定的数据类型以及(可选)当前文件中该数据类型的所有出现替换为新创建的 typedef。
内联 typedef 重构则完全相反——它会移除选定的 typedef ,并将其所有使用替换为声明的数据类型。

If you want the 引入 typedef refactoring to use type alias instead of typedef, select the corresponding checkbox on the page of JetBrains Rider 设置 Ctrl+Alt+S. 有关更多信息,请参阅 Microsoft Docs 上的别名和 typedef(C++)。
引入使用枚举
C++20 使用 enum 语法允许您从目标枚举中添加所有枚举器。 因此,使用其成员枚举器时,您可以省略枚举名称的重复。
引入使用枚举 重构帮助您添加 使用 enum 语句。 要调用此重构,请将插入符号放在枚举器上,然后按 Ctrl+Alt+Shift+T 或从主菜单中选择 ,然后在 重构此内容 弹出窗口中选择 引入使用枚举。 如果文档中有多次枚举使用的出现,您可以选择是替换当前使用还是所有使用。

引入变量
此重构允许您基于选定的表达式创建一个新的局部变量,用该表达式初始化它,并最终将方法中表达式的所有出现替换为新引入变量的引用。
您还可以使用专用快捷键 Ctrl+Alt+V 调用此重构。

内联变量
此重构允许您将代码中变量的所有出现替换为其初始化器。 请注意,仅当变量值在初始化后保持不变时才应应用此重构。
您还可以使用专用快捷键 Ctrl+Alt+N 调用此重构。
Inline Function(内联函数)
此重构允许您用函数的主体替换函数调用。 JetBrains Rider 将执行必要的转换,处理所有名称冲突,并重新格式化生成的代码,或者向您显示一个简短的弹出消息,解释为什么尝试内联某些方法不是一个好主意。
您还可以使用专用快捷键 Ctrl+Alt+N 调用此重构。

内联宏
此重构允许您替换代码中宏的所有使用。 重构还会报告需要手动检查的宏体和宏参数中的潜在使用。
您还可以使用专用快捷键 Ctrl+Alt+N 调用此重构。

重命名
支持 C++ 的最耗时的重构之一。 如果您尝试手动修改符号的名称,可能会导致许多问题。 当您调用 重命名重构 (也可以通过专用快捷键 Shift+F6 调用)时,JetBrains Rider 会完成所有检查。 如果没有冲突,所有修改都会顺利完成;否则,您会获得冲突列表,您可以手动解决这些冲突,以确保仅进行必要且适当的更改。

当您使用此重构重命名类时,JetBrains Rider 会自动重命名相应的文件(源文件和头文件)。
您还可以在解决方案资源管理器中对文件调用此重构。 一旦您为文件提供了新名称,JetBrains Rider 会更新其在 include 中的所有使用。