Visual Studio Tipps & Tricks, Teil 43: Methoden Refactoring (Ctrl +R, Ctrl +M)

Vielleicht seid Ihr ja auch Fans von kurzen, übersichtlichen Methoden. Am liebsten mag ich es eigentlich, wenn Methoden auf einen Blick zu verstehen sind und eigentlich der Name der Methode schon alles sagt. Sicher gibt es hier unterschiedliche Philosophien und nicht immer wird das so einfach funktionieren, so dass man in der Realität auch Methoden finden wird, die “mehr” tun, als erwartet. Gerade, wenn man mit bestehenden Codebasen arbeitet hat man nicht immer die Wahl und ein Refactoring manuell durchzuführen wäre doch bisweilen etwas mutig.

Visual Studio kann hierbei unterstützen und das  – ich nenne es mal “halbautomatische” – Refactoring erleichtern. Dazu suchen wir uns einfach die Codezeilen einer Methode, die wir gerne in eine andere, neue Methode auslagern möchten.

Nehmen wir doch einfach mal unser OCR Sample, weil ich den Schnipsel Code gerade zur Hand habe.

image

Vielleicht möchten wir die foreach-Schleifen, die das Result in einen String ausgeben ja als separate Methode extrahieren. Das können wir tun, indem wir den Code markieren und dann Ctrl+R, Ctrl+M klicken.

image

Wir bekommen einen Dialog gezeigt, in dem wir den neuen Methodennamen festlegen können. Außerdem sehen wir eine Vorschau auf die Methodensignatur. Mit dem Klick auf “OK”, wird die Methode angelegt und der Code bleibt – so soll es sein – lauffähig.

Interessant ist dabei, dass der Automatismus relativ clever mit den lokalen Variablen umgeht. So werden aus diesen lokalen Variablen , die wir im Codeschnipsel verwendet haben automatisch Methodenparameter erzeugt und wir müssen uns hierum nicht selbst kümmern. Globale Variablen werden allerdings unverändert übernommen – was auch logisch ist. Natürlich wird der aufrufende Code entsprechend angepasst.

image

Tl;dr

Ctrl+R, Ctrl+M extrahiert Code aus einer Methode, erzeugt eine neue Methode und sorgt dafür, dass sich das Verhalten der Software nicht ändert!

 

 

Kurzer Text am Rande:

Dieser Post ist Teil einer längeren Serie, in der ich ein paar der vielleicht nicht ganz so bekannten Features von Visual Studio vorstellen werde. Ich hoffe, für Euch ist der ein oder andere Kniff dabei, den Ihr noch nicht kanntet. Und wenn ihr ihn doch schon kennt: Seid stolz auf Euch und verratet den Trick auch dem Entwickler neben Euch.