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

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

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

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

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

在此视图中,您可以检查受影响的调用并通过单击在编辑器中定位它们。 对于每个调用,选择获取新添加参数值的所需方式,或者选择 用户编辑 手动编辑调用。
在不同语言中的适用性
此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。