Frage

Gibt es ein Visual Studio-Add-In, das das Refactoring der Entfernungsmethode durchführen kann?
Angenommen, Sie haben die folgende Methode:

Result DoSomething(parameters)  
{  
    return ComputeResult(parameters);  
}  

Oder die Variante, bei der das Ergebnis ungültig ist.

Der Zweck des Refactorings besteht darin, alle Aufrufe von DoSomething durch Aufrufe von ComputeResult oder den Ausdruck zu ersetzen, der die Parameter verwendet, wenn ComputeResult kein Methodenaufruf ist.

War es hilfreich?

Lösung

Wenn ich die Frage verstehe, nennt Resharper diese „Inline-Methode“ – Strg - R + ICH

Andere Tipps

Ich würde es am einfachsten machen:

  1. Benennen Sie die ComputeResult-Methode in ComputeResultX um
  2. Benennen Sie die DoSomething-Methode in ComputeResult um
  3. Entfernen Sie die DoSomething-Methode (die jetzt ComputeResult ist).
  4. Benennen Sie die ComputeResultX-Methode wieder in ComputeResult um

Möglicherweise zeigt VS aufgrund der letzten Umbenennung einen Konflikt, aber ignorieren Sie ihn.

Mit „umbenennen“ meine ich:Überschreiben Sie den Namen der Methode und verwenden Sie anschließend das Dropdown-Menü (Umschalt+Alt+F10) und wählen Sie „Umbenennen“.Es werden alle Vorkommen durch den neuen Namen ersetzt.

Es stehen einige Produkte zur Verfügung, um Visual Studio 2005 und 2008 zusätzliche Refactoring-Optionen hinzuzufügen, darunter einige der besseren Umgestalten!Profi Und Nachschärfer.

Was die Entfernungsmethode betrifft, so gibt es im kanonischen Refactoring-Buch eine Beschreibung dazu, wie dies inkrementell durchgeführt wird.

Persönlich folge ich einem Muster in etwa in dieser Richtung (vorausgesetzt, dass das Kompilieren und Ausführen von Komponententests zwischen den einzelnen Schritten erfolgt):

  1. Erstellen Sie die neue Methode
  2. Entfernen Sie den Hauptteil der alten Methode und ändern Sie ihn, um die neue Methode aufzurufen
  3. Suchen Sie nach allen Verweisen auf die alte Methode (klicken Sie mit der rechten Maustaste auf den Methodennamen und wählen Sie „Alle Verweise suchen“) und ändern Sie sie in Aufrufe der neuen Methode
  4. Markieren Sie die alte Methode als [Veraltet] (Aufrufe dafür werden jetzt während des Builds als Warnungen angezeigt)
  5. Löschen Sie die alte Methode

Wenn es um ein solches Refactoring geht, probieren Sie es aus ReSharper.

Klicken Sie einfach mit der rechten Maustaste auf den Methodennamen, klicken Sie auf „Verwendungen suchen“ und führen Sie eine Umgestaltung durch, bis keine Referenzen mehr gefunden werden können.

Und wie Dlamblin bereits erwähnt hat, bietet die neueste Version von ReSharper die Möglichkeit, eine Methode zu integrieren.Das sollte genau das tun, was Sie brauchen.

ReSharper ist definitiv das VS 2008-Plug-In für die Umgestaltung.Allerdings wird diese Form des Refactorings nicht in einem Schritt durchgeführt;Sie müssen Refactor->DoSomething in ComputeResult umbenennen und den Konflikt mit dem echten ComputeResult ignorieren.Dann löschen Sie die Definition, die DoSomething war.Es ist fast ein Schritt.

Aber vielleicht kann es Mach es einen Schritt.Wenn ich das richtig gelesen habe.

Sie können auch mit der rechten Maustaste auf den Methodennamen klicken und in Visual Studio auf „Alle Referenzen suchen“ klicken.

Ich persönlich würde einfach eine machen STRG + SCHICHT + H Zu Find & Replace

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top