Quick-Fixes

ReSharper wird mit mehr als 1200 Quick-Fixes ausgeliefert, die Ihnen beim sofortigen Beheben der meisten erkannten Codeprobleme in C#, VB.NET, XAML, ASP.NET und anderen unterstützten Sprachen helfen. Um einen Quick-Fix anzuwenden, drücken Sie einfach Alt+Enter über einem hervorgehobenen Codeproblem und wählen Sie die beste Möglichkeit, um das Problem zu beheben oder den Code zu verbessern.

Quick-Fixes für Codeprobleme in ReSharper

Quick-Fixes anwenden

Quick-Fixes werden meist durch eine Glühbirne dargestellt, die links von einer hervorgehobenen Codezeile erscheint, wenn Sie den Textcursor auf die Hervorhebung platzieren. Rot bedeutet Fehler und gelb steht für Warnungen, Vorschläge und Hinweise. Sie können sich die verfügbaren Quick-Fixes für einen bestimmten Fehler ansehen, indem Sie entweder auf die Glühbirne klicken oder Alt+Enter drücken. Wählen Sie dann einfach einen passenden Quick-Fix aus der Liste aus und das Problem wird unkompliziert behoben.

Quick-Fixes von ReSharper auf einen größeren Bereich anwenden (Datei, Projekt oder Lösung)

In Bereich beheben

Einige Quick-Fixes (z. B. Remove unused directives, Make field read-only, Remove redundant cast usw.) können automatisch Probleme in einem größeren Bereich finden und beheben: in der aktuellen Datei, im aktuellen Projekt oder der gesamten Lösung.

Sie können solche Fixes durch einen kleinen Pfeil erkennen, der direkt neben dem Fix angezeigt wird. Klicken Sie auf diesen Pfeil oder drücken Sie die rechte Pfeiltaste auf der Tastatur, um auszuwählen, wo der Fix angewendet werden soll.

Quick-Fixes von ReSharper für nicht aufgelöste Symbole

Nicht aufgelöste Symbole korrigieren

ReSharper bietet für Fehler, die durch nicht aufgelöste Symbole verursacht werden, eine Reihe von Quick-Fixes an, zum Beispiel:

  • Wenn ein Symbol in einem Namespace existiert, auf den irgendwo in Ihrer Lösung verwiesen wird, bietet ReSharper in einem Popup an, alle fehlenden Namespaces in die Datei zu importieren.
  • Verschiedene Create...-Quick-Fixes helfen Ihnen, entsprechend dem Verwendungskontext die passende Symboldeklaration zu generieren.
  • Eine andere Möglichkeit, das Problem zu beheben, ist Find this type on nuget.org.... Das öffnet den NuGet-Browser, der Ihnen beim Finden und Installieren fehlender NuGet-Pakete hilft.
Quick-Fixes für Codeprobleme in ReSharper

Interaktive Quick-Fixes

Quick-Fixes, die neue Symbole in Ihrem Code erstellen, werden häufig interaktiv durchgeführt. In diesem Beispiel hilft ReSharper, zahlreiche Enumerationen von IEnumerable zu ändern, indem im Vorfeld eine List<>-Variable erzwungen wird.

Wenn ReSharper die erforderlichen Eingabefelder mit einem roten Rahmen hervorhebt, dann können Sie den vorgeschlagenen Wert akzeptieren oder ihn bearbeiten und anschließend Tab oder Enter drücken, um zur nächsten Eingabeposition weiterzugehen, oder Umschalt+Tab drücken, um zur vorherigen Eingabeposition zu gehen. Sobald Sie mit dem letzten Eingabefeld fertig sind, kehrt Ihr Textcursor in den normalen Modus zurück.

Quick-Fixes und Kontextaktionen von ReSharper

Quick-Fixes und Kontextaktionen im Vergleich

ReSharper bietet auch Kontextaktionen an, die in der Dropdown-Liste zusammen mit den Quick-Fixes angezeigt werden.

Der Unterschied zwischen den beiden ist einfach: Quick-Fixes erscheinen nur für hervorgehobene Codeprobleme und zielen darauf ab, diese zu beheben, während Kontextaktionen kleine Refaktorierungen darstellen, die immer im Alt+Enter-Dropdown verfügbar sind.

Code hervorheben, der einem Suchmuster entspricht, und diesen mit einem Ersatzmuster ersetzen

Benutzerdefinierte Quick-Fixes

ReSharper bietet Strukturelles Suchen und Ersetzen an, um Code zu finden, der einem bestimmten Muster entspricht, und diesen optional durch Code zu ersetzen, der mit einem anderen Muster übereinstimmt. Noch aufregender ist, dass ReSharper Ihre Lösung kontinuierlich auf Ihre Suchmuster überwachen kann. Code, der diesen Mustern entspricht, wird hervorgehoben und kann mit Quick-Fixes gemäß Ihrem Ersetzungsmuster ersetzt werden.

Quick-Fixes für Codeprobleme in ReSharper

C#: String-Interpolation Beispiel

Jahrelang war die Verwendung von String.Format und anderen Methoden, die kombinierte Formatierung unterstützten, die einzige Methode, C#-Variablenwerte in Stringliterale einzufügen. Ab C# 6.0 lässt sich dies mithilfe der Stringinterpolation viel lesbarer bewerkstelligen. Mit dem Quick-Fix von ReSharper können Sie die Vorkommen von kombinierter Formatierung mit wenigen Tastendrücken durch Stringinterpolation ersetzen.

Quick-Fixes für Codeprobleme in ReSharper

C#: Mögliche NullReferenceException beheben Beispiel

Wenn ReSharper einen Methodenaufruf erkennt, dessen Objekt möglicherweise Null ist, was bei der Ausführung potentiell zu einer System.NullReferenceException führen kann, dann schlägt es zwei Quick-Fixes vor. Der herkömmliche Fix besteht darin, vor dem Aufruf eine Routine zur Überprüfung auf Null einzufügen. Einen kompakteren Code ermöglicht jedoch die Verwendung des Nullbedingungsoperators .?, der in C# 6.0 genau für solche Situationen eingeführt wurde.

Quick-Fixes für Codeprobleme in ReSharper

C#: foreach in LINQ-Ausdruck konvertieren Beispiel

Wenn Sie die LINQ-Syntax in C# mögen, dann hilft Ihnen ReSharper bei der Überprüfung Ihrer bestehenden Codebasis auf Schleifen, die zu LINQ-Ausdrücken konvertiert werden können. Danach können Sie einen Quick-Fix verwenden, um die Umwandlung schnell und sicher durchzuführen.

Quick-Fixes für Codeprobleme in ReSharper

C#: Redundante Array-Erstellung entfernen Beispiel

Wenn eine C#-Methode eine variable Anzahl an Argumenten mit dem Schlüsselwort params verwendet, generiert der Compiler ein Array für die Argumente, so dass Sie Ihre bei Methodenaufrufen die Parameter nicht in ein Array packen müssen.

Noch interessanter ist der von ReSharper vorgeschlagene Quick-Fix, der sämtlichen redundanten Code im gewünschten Bereich entfernt, darunter redundante Qualifizierer, Argumente, Casts, Bedingungsüberprüfungen, nicht verwendete Zuweisungen, nicht erreichbaren Code und mehr.

Quick-Fixes für Codeprobleme in ReSharper

C#: Optionale Parameter einführen Beispiel

Wenn der einzige Zweck einer überladenen Funktion darin besteht, die „implementierende“ Funktion mit den Standardwerten für einige Argumente aufzurufen, dann hilft Ihnen ReSharper, diese Überladung zu entfernen und stattdessen optionale Parameter in der „implementierenden“ Funktion zu verwenden.

Quick-Fixes für Codeprobleme in ReSharper

C#: Explizite Casts in foreach-Schleife Beispiel

foreach erlaubt absichtlich eine versteckte Umwandlung zu einem abgeleiteten Typ. Auf der einen Seite ist das benutzerfreundlich. Auf der anderen Seite kann es jedoch bei der Ausführung zu System.InvalidCastException führen. Ein Quick-Fix, den ReSharper vorschlägt, hilft Ihnen, die Umwandlung explizit zu machen. Dies ist immer noch nicht sicher, aber zumindest erfolgt es nicht mehr versteckt.

Quick-Fixes für Codeprobleme in ReSharper

VB.NET: Stringvergleich explizit angeben Beispiel

Viele Quick-Fixes funktionieren bei mehreren Sprachen. Hier ist zum Beispiel ein Quick-Fix, der sowohl in C# als auch in VB.NET verfügbar ist: Um die Vergleichsmethode für zwei Strings explizit anzugeben, schlägt ReSharper vor, den Gleichheitsoperator durch String.Equals() zu ersetzen. Dadurch wird die Groß-/Kleinschreibung berücksichtigt und sichergestellt, dass der Vergleich kulturkonform durchgeführt wird.

Quick-Fixes für Codeprobleme in ReSharper

TypeScript: Typprüfung hinzufügen Beispiel

Union-Typen in TypeScript können manchmal kompliziert sein. Zum Beispiel führt die Verwendung eines Members, das nicht in allen Typen vorhanden ist, zu einem Compilerfehler. In diesem Fall schlägt ReSharper eine Reihe von Quick-Fixes vor, die verschiedene Typprüfungen hinzufügen, um solche Member eindeutig zu machen.

Quick-Fixes für Codeprobleme in ReSharper

JSON: Fehlende erfordeliche Eigenschaft hinzufügen Beispiel

In JSON-Dateien verwendet ReSharper seine aus verlinkten JSON-Schemata gewonnenen Erkenntnisse, um Quick-Fixes für fehlende erforderliche Eigenschaften vorzuschlagen.

Quick-Fixes für Codeprobleme in ReSharper

CSS: Alpha-Komponente entfernen Beispiel

CSS Level 3 und darunter erlauben keinen Alphakanal in der hexadezimalen Farbnotation. Deshalb schlägt ReSharper vor, entweder hexadezimale Farben durch RGBA- oder HSLA-Farben zu ersetzen oder den Wert des Alphakanals einfach zu entfernen.