如何将一个方法从类中拉出(并转换为新的或现有的)?

使用Visual Studio 2010 / Resharper将一个简单的方法从类中拉出来并进入一个新类的最简单方法是什么?

编辑:我使用Resharper版本5。

从…开始

public void Method(){}

  1. 首先,使用“Make Method Static”命令使方法静态。

    public static void Method(){}

  2. 然后,添加新类的类型的局部变量:

    public static void Method(){Class2 me = new Class2();}

  3. 然后,使用Introduce Parameter

    public static void Method(Class2 me){}

  4. 然后使用“Make Method non-Static”。 在第2课:

    public void Method(){}

与上面相同,但我不会手动转换为静态方法。 拉出“Refactor this”菜单(当然使用快捷键,ctrl + shift + R),然后选择“Make method static”,然后选择“Refactor this” – >“Move”。

注意:

如果您正在讨论在类层次结构中移动方法,可以使用“向下推送成员”或“向上拉成员”

在最新的Resharper中,有Move Refactoring。 您可以在光标位于方法签名时按F6,也可以将代码剪切粘贴到新位置,Resharper会让您应用重构。