Wie ziehe ich eine Methode aus ihrer Klasse heraus (und in eine neue oder bestehende Klasse)?

8

Was ist der einfachste Weg, eine existierende Methode mit Visual Studio 2010 / Resharper aus ihrer Klasse in eine neue Klasse zu ziehen?

Bearbeiten: Ich benutze Resharper Version 5.

    
Slampen 03.05.2010, 05:31
quelle

3 Antworten

6

Beginnend mit

public void Methode () {}

  1. Machen Sie zuerst die Methode mit dem Befehl "Make Method Static" statisch.

    public static void Methode () {}

  2. Fügen Sie dann eine lokale Variable vom Typ der neuen Klasse hinzu:

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

  3. Verwenden Sie dann den Parameter Einführung

    public static void Methode (Class2 me) {}

  4. Verwenden Sie dann "Make-Methode nicht statisch". In Klasse 2:

    public void Methode () {}

John Saunders 03.05.2010, 05:35
quelle
4

Wie oben, aber ich würde die Konvertierung zur statischen Methode nicht manuell vornehmen. Öffnen Sie das Menü "Refactor this" (mit den Tastenkürzeln ctrl + shift + R), wählen Sie dann "Make method static" und dann "Refactor this" - & "Move".

Hinweis:

Wenn Sie eine Methode in einer Klassenhierarchie verschieben, können Sie "Push members down" oder "Pull members up"

verwenden     
Marius 03.05.2010 06:15
quelle
1

Im aktuellen Resharper gibt es Move Refactoring. Sie drücken entweder F6, während sich der Cursor in der Methodensignatur befindet, oder Sie fügen Code an der neuen Position ein und Resharper bietet Ihnen die Anwendung des Refactorings.

    
Vladimir Smirnov 13.09.2013 11:46
quelle