更改签名重构
此重构结合了对方法、构造函数、属性和索引器的签名所能进行的多种修改。 除了在声明中更改签名外,JetBrains Rider 还会在当前解决方案中查找并更新所有用法、基符号、实现和重写的已修改符号。
适用的修改
使用此重构,您可以执行以下修改:
修改 / 符号 | 方法 | 属性 | 构造函数 | 索引器 |
|---|---|---|---|---|
更改名称 | ||||
更改返回值类型 | ||||
更改参数的名称和类型 | ||||
添加或移除参数 | ||||
对形参重新排序 |
通过命令调用重构
将插入点放在编辑器中方法、属性、构造函数或索引器的声明或用法处,或在 结构窗口窗口中选择它。
请执行以下操作之一:
按下 Ctrl+F6。
按 Alt+Enter 并选择 更改签名。
按 Ctrl+Alt+Shift+T 然后选择 更改签名。
在主菜单中选择 。
更改签名 对话框将打开。
在 名称 字段中输入符号的新名称。 如有必要,在 返回值类型 字段中更改方法的返回类型。
在 参数 区域中编辑现有参数的类型、名称、修饰符和默认值。 如有必要,使用 添加 和 移除 按钮创建或移除参数。 单击 上移 和 下移 以重新排序参数。
如果您不想更改函数的用法,JetBrains Rider 可以保留现有声明,并在新声明中调用它,从而使现有用法保持不变。 为此,请选择 通过重载方法委托 (有关更多信息,请参阅 更改签名而不更新调用)。
在预览字段中检查新签名。
要应用重构,请点击 下一步。
如果您添加了参数,JetBrains Rider 会提供几种方法来修复函数的调用:您可以选择使调用代码不可编译,使用 'null' 或特定值应用于所有调用,或者使用调用图为每个特定调用单独选择值(有关更多信息,请参阅 使用调用图更新调用(推送/拉取参数工具))。
如果未发现冲突,JetBrains Rider会立即执行重构。 否则,它会提示您 解决冲突。

更改签名而不更新调用
如果您在重构向导中选择 通过重载方法委托 ,JetBrains Rider 会保留现有声明,并在新声明中调用它,从而使现有用法保持不变。
请注意,如果您修改继承层次结构中的函数,此选项不可用。
例如,如果您更改了方法 public string Foo(string s, int x) 的名称并重新排序了参数,JetBrains Rider 将为您创建以下代码:
就地执行重构
您可以通过直接在编辑器中修改函数的声明,然后应用 快速修复来调用解决方案范围内的重构。
例如,如果您在方法中重新排序参数,方法签名周围会出现灰色边框,通知您可以进行重构。 您可以按 Alt+Enter 在 操作列表中找到重构:

应用快速修复后,对话框会显示您对方法签名的更改:

您可以单击 下一步 在整个解决方案范围内应用更改。
当您在函数的任何调用中添加一个新参数时,也可以应用更改签名重构。 在这种情况下,JetBrains Rider 会检测到不正确的调用,突出显示并建议相应的快速修复:

此快速修复将调用重构并更新函数的声明及其在整个解决方案中的所有用法。 如有必要,JetBrains Rider 将显示 调用图 ,以单独为每个特定调用选择值。
使用调用图更新调用(推送/拉取参数工具)
如果您更改函数签名以添加新参数,JetBrains Rider 提供了多种更新函数调用的方法。 除了为所有调用使用 'null' 或常量值,您还可以使用调用的可视化表示来更新每个单独的调用。
如果您通过 向导执行重构,请在向导的最后一页选择 通过调用树解析 并单击 下一步。 如果您从 更新的函数调用上的快速修复执行重构,修改函数的所有调用的工具窗口会自动打开:

在此视图中,您可以检查受影响的调用,并通过单击在编辑器中定位它们。 对于每个调用,选择获取新添加参数值的所需方式,或选择 用户编辑 手动编辑调用。