C# Methoden in andere Klasse verschieben (Visual Studio)

Ghost_Rider_R

Lieutenant
Registriert
Nov. 2009
Beiträge
759
Hallo zusammen,

ich arbeite gerade an einem Projekt, bei dem ich mehrere Klassen mit teilweise über 500 Zeilen Code überarbeiten möchte. Das ist natürlich nicht ideal, aber jetzt kümmere ich mich darum.

Aktuell ziehe ich die Methoden in den Klassen manuell in separate Klassen um. Allerdings frage ich mich, ob es eine bequemere Lösung gibt, als das von Hand zu machen.

Wie geht ihr dabei vor? Nutzt ihr spezielle Tools oder macht ihr alles von Hand?

Zur Info: Ich habe bisher noch nie ReSharper verwendet, da ich bisher gerne mit den Standard-Tools gearbeitet habe.

Vielen Dank im Voraus für eure Tipps.

LG Ghost Rider
 
So etwas mache ich fast immer mit Tools.

In JetBrains Rider: Rechtsklick auf Klasse > Refactor > Move
In Visual Studio gibt es auch verschiedene Refactoring tools. Evtl. hilft dir "Move to Namespace" hier weiter.
 
ReSharper ist aber quasi ein Standard Tool fürs Visual Studio. Ich gebe Dir Recht ich arbeite auch gerne so schlank wie möglich und der ReSharper macht den Start vom VS noch länger, aber es ist echt ein mega Tool, gerade in Refactoring Dingen sehr stark. Aber habe jetzt Visual Studio auch schon länger nicht mehr angehabt, ganz konkret sagen ob's damit geht kann ich deswegen nicht...
 
Dieses Umorganisieren nennt man Refactoring. JetBrains/Rider ist da Spitze drin, Visual Studio sehr sehr spartanisch. Keine Ahnung allerdings was ReSharper ermöglicht, da ich Rider nutze.

Nur so: Machst du das alles manuell, vergisst/übersieht du irgendwo definitiv was.
 
Drexel schrieb:
Aber habe jetzt Visual Studio auch schon länger nicht mehr angehabt, ganz konkret sagen ob's damit geht kann ich deswegen nicht...
Geht eigentlich recht super. Einfach z. B. ne Klasse extrahieren, Member auswählen, die mitziehen sollen, Namen für die neue Klasse eingeben, fertig. Oder Methoden nach oben in die Basisklasse verschieben...oder oder oder. Vieles geht recht fix, sobald man sich einmal an den Workflow gewöhnt hat :)
1694163287925.png
 
  • Gefällt mir
Reaktionen: Micke
Sehe ich das richtig, dass ReSharper kostenpflichtig ist?
Ist wohl kostenpflichtig, ich dachte immer das wäre so ein open Source ding :-)
Ergänzung ()

Da ich die IDE nicht wechseln möchte muss ich wohl weiter von Hand frickeln. Trotzdem danke für eure Hilfe!
 
ReSharper war zumindest früher ein quasi Standard Tool für Visual Studio. In den letzten Jahren hat sich in der IDE IMHO viel getan - mittlerweile verzichte ich darauf.

Du kennst dein Code am besten, jedoch sind 500 Zeilen Programmcode erst einmal nicht zwingend ein Problem. Also nicht auf Zwang den Code anpassen :).
 
Ghost_Rider_R schrieb:
ich dachte immer das wäre so ein open Source ding :-)
Also wenn du Open-Source-Projekte entwickelst, ist es kostenlos, ja :D Ansonsten leider kostenpflichtig. Für ein paar hundert Zeilen Code aber sicher nicht notwendig. Lohnt sich erst, wenn man es regelmäßig nutzt und seine Produktivität damit steigern kann...und natürlich auch Geld mit seiner Software verdient.

Du könntest dir auch CodeRush mal anschauen, das sollte mittlerweile kostenlos sein. Fand ich in meinem Test damals nicht so gut wie den Resharper, aber in deinem Fall, wenn du nichts bezahlen willst oder kannst, wäre es ggf. schon eine gute Unterstützung.
 
andy_0 schrieb:
Du kennst dein Code am besten, jedoch sind 500 Zeilen Programmcode erst einmal nicht zwingend ein Problem. Also nicht auf Zwang den Code anpassen :).

Nicht zwingend, aber meistens. Ausnahmen gibts natürlich immer.
Allgmein klingen > 500 Zeilen in einer Klasse danach, dass die Klasse zu viel tut und in kleinere Klassen zerlegt werden kann / sollte. Zumindest sofern man sich etwas an "single responsibility" halten möchte.
 
Zuletzt bearbeitet:
In meinem Fall war das eine Verletzung des Single Responsibility Prinzips. Zum Zeitpunkt der Projekterstellung kannte ich all diese Clean-Code-Tipps nicht, und ich stand unter erheblichem Zeitdruck. Damals war ich einfach nur froh, dass die Funktionalität gegeben war.

Jetzt, da ich mehr Zeit und Wissen im Bereich Clean Code habe, habe ich die Klassen aufgeräumt, und sie sind jetzt viel kompakter und besser strukturiert. 👍
 
Zurück
Oben