JetBrains Rider 2026.1 Help

移动实例方法重构

此重构允许您将实例(非静态)方法移动到另一个类型。 与 移动静态成员不同,实例方法不能随意移动到任何类型。 潜在目标类型的列表包括方法参数的类型和当前类型中字段的类型。 如果方法使用了其他类成员,重构将把源类作为参数传递。 如果需要,它还会更改非公共成员的访问权限,并将字段封装为公共属性。 方法的所有用法都会自动更新。

如果您发现某个方法的逻辑更适合放在另一个作为方法参数或字段的类型中,此重构可能会很有帮助。

在下面的示例中,我们对 LogDrawing 实例方法应用重构,将其移动到 Logger 类中。 在方法中使用的私有 pivot 字段会自动封装为相应的属性:

class Shape { private Point pivot; private void LogDrawing(Logger logger) { var msg = $"Shape is drawn at {pivot.X}, {pivot.Y}"; logger.Log(msg); } } class Logger { public void Log(string msg) { // log the message } }
class Shape { private Point pivot; public Point Pivot { set { pivot = value; } get { return pivot; } } } class Logger { public void Log(string msg) { // log the message } private void LogDrawing(Shape shape) { var msg = $"Shape is drawn at" {shape.Pivot.X}, {shape.Pivot.Y}"; this.Log(msg); } }

将实例方法移动到另一个类型

  1. 将光标放在编辑器中实例方法的声明或用法处,或在 结构窗口窗口中选择它。

  2. 请执行以下操作之一:

    • F6

    • Ctrl+Alt+Shift+T 然后选择 移动实例方法

    • 在主菜单中选择 重构 | 移动实例方法

    将打开 移动实例方法 对话框。

  3. 选择目标类型。

  4. 要应用重构,请点击 下一步

  5. 如果未发现冲突,JetBrains Rider会立即执行重构。 否则,它会提示您 解决冲突

JetBrains Rider。 移动实例方法重构
2026年 3月 25日