C++ 的重构
执行重构
将插入符号放在符号上,选择您想要重构的代码片段,或在工具窗口中选择一个项目。
执行以下操作之一:
如果所选的重构需要用户输入,则会打开重构向导。 请注意,向导的对话框不是模态的,因此您可以在向导打开时编辑代码。
要回滚重构操作,向导提供了选项  要启用撤销功能,请打开所有有更改的文件进行编辑。 如果您选择此选项,ReSharper 会在新的编辑器选项卡中打开所有修改过的文件,并允许您回滚重构。 在这种情况下,您需要自己保存更改。 如果未选择此选项, ReSharper 会自动保存修改过的文件,而无需打开它们。
如果重构操作会导致代码冲突(例如重复的名称、可见性冲突等),向导会在应用重构之前的最后一步显示冲突列表。 对于某些冲突,向导还可以建议快速修复。 更多信息请参阅 解决重构中的冲突。
在您修改编辑器中的代码后,某些重构会立即可用。 有关更多信息,请参阅 就地重构
更改签名
更改签名重构允许您对函数的签名进行一种或多种不同的修改。 函数的所有用法、实现和重写都将相应更新。
您还可以使用专用快捷键 Control+F6 调用此重构。

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

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

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

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

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

如果您希望 引入 typedef 重构使用类型别名而不是 typedef ,请在 ReSharper 选项 的 页面上选中相应的复选框
Alt+R, O
。 有关更多信息,请参阅 Microsoft Docs 上的别名和 typedef(C++)。
引入 using 枚举
C++20 using enum 语法允许您添加目标枚举中的所有枚举器。 因此,使用其成员枚举器时,您可以省略枚举名称的重复。
引入 using 枚举 重构有助于添加 using enum 语句。 要调用此重构,请将插入符号放在枚举器上,然后按 Control+Shift+R 或从主菜单中选择 ,然后在 重构 弹出窗口中选择 引入 using 枚举。 如果文档中存在枚举用法的多个出现,您将能够选择是替换当前用法还是所有用法。

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

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

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

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

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