What is the easiest way of pulling an existing method out of its class and into a new class using Visual studio 2010 / Resharper?
Edit: I use Resharper version 5.
If you go to each method and right-click on its name, the menu has a "Refactor" option, which leads to a "Move" option.
To move this method to the new class, highlight the method's name and select Refactor→ Move, or right-click and select Refactor→ Move, opening the Move Static Member(s) dialog shown in Figure 4-5. In Eclipse, you can move a static method, static field, or instance method using refactoring.
Starting with
public void Method() {}
First, make the method static using the "Make Method Static" command.
public static void Method(){}
Then, add a local variable of the type of the new class:
public static void Method(){Class2 me = new Class2();}
Then, use Introduce Parameter
public static void Method(Class2 me) {}
Then use "Make Method non-Static". In class2:
public void Method(){}
Same as above, but I would not do the conversion to static-method manually. Pull up the "Refactor this" menu (using shortcuts of course, ctrl+shift+R), then select "Make method static", then "Refactor this"->"Move".
Note:
If you're talking about moving a method in a class hierarchy, you can use "Push members down" or "Pull members up"
In up-to-date Resharper, there's Move Refactoring. You either press F6 while the cursor is in method signature, or cut-paste code to the new location, and Resharper offers you to apply the refactoring.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With