Codestil

ReSharper hilft Ihnen bei der Einhaltung eines konsistenten Codestils über Ihre gesamte Codebasis hinweg. Die Standard-Stileinstellungen basieren auf gemeinhin akzeptierten Konventionen und bewährten Methoden. Wenn jedoch Ihre persönlichen Präferenzen oder die Unternehmensstandards anders sind, dann können Sie diese global oder für jede Lösung konfigurieren und die Einstellungen mit Ihrem Team teilen.

Ihre Codestilpräferenzen werden berücksichtigt, wenn ReSharper Symbolnamen in der Codevervollständigung vorschlägt, neue Elemente generiert, Codevorlagen anwendet oder Refaktorierungen durchführt.

Verstöße gegen den Codestil werden mit den Codeinspektionen erkannt und können mit Quick-Fixes oder der Codebereinigung behoben werden.

Codebereinigung anwenden, um Einstellungen zum Codestil umzusetzen

Codebereinigung

Die Codebereinigung ist eine Funktion, die Ihnen hilft, Verstöße gegen den Codestil in einer oder mehreren Dateien, einem Projekt oder der gesamten Lösung sofort zu beseitigen, und das alles mit einer einzigen Tastenkombination: Strg+E, C.

Zwei Standardprofile – Full Cleanup (das alle Codestil-Einstellungen außer dem Benennungsstil anwendet) und Reformat Code (das nur Ihre Formatierungsregeln anwendet) – können durch Ihre benutzerdefinierten, aufgabenspezifischen Profile ergänzt werden.

Aktuell ausgewählten Code neu formatieren

Codeformatierung

ReSharper kann einen ausgewählten Codeblock, den gesamten Code in der aktuellen Datei, alle Dateien eines Verzeichnisses oder sogar das Projekt oder die Lösung als Ganzes gemäß Ihren Präferenzen neu formatieren. ReSharper bietet verschiedene Formatierungsoptionen für alle unterstützten Sprachen an. Die Neuformatierung beeinflusst das Klammern-Layout, Leerzeilen, Zeilenumbrüche, Leerzeichen in unterschiedlichen Kontexten, Einrückungen, die Ausrichtung mehrerer Konstrukte und viele weitere Optionen, die Sie in dem Dialogfeld ReSharper Options verfeinern können.

Eine kontextspezifische Konfiguration von Formatierungsregeln ist verfügbar, wenn Sie Alt+Enter über dem ausgewählten Code drücken, den Sie neu formatieren möchten. Wählen Sie in der Aktionsliste Format Selection | Configure, um sich alle Formatierungsregeln anzusehen, die den Code beeinflussen.

Sie können außerdem die Codebereinigung verwenden, um den Code neu zu formatieren.

Expliziten Typ durch „var“-Schlüsselwort ersetzen

Implizite/explizite Typisierung

Die Verwendung von implizit typisierten Variablen (var-Schlüsselwort), die in C# 3.0 eingeführt wurden, ist aufgrund der verbesserten Code-Lesbarkeit ziemlich beliebt geworden. Auch ReSharper empfiehlt standardmäßig die Verwendung des var-Schlüsselwortes.

Sie können jedoch Ihre Präferenzen ändern und sich für die Verwendung expliziter Typen entscheiden.

Sie können außerdem die Codebereinigung verwenden, um Ihre Präferenzen für implizite/explizite Typisierung umzusetzen.

Quick-Fix für Auto-Eigenschaften verwenden

Auto-Eigenschaften verwenden

Automatisch implementierte Eigenschaften (auch bekannt als Auto-Eigenschaften) erlauben die einfache Deklaration von Typeigenschaften, die keine zusätzliche Logik haben. ReSharper unterstützt standardmäßig Auto-Eigenschaften, sofern möglich, aber dieses Verhalten ist konfigurierbar.

Sie können mithilfe eines Quick-Fixes oder der Codebereinigung Eigenschaften mit zugrunde liegenden Feldern zu Auto-Eigenschaften konvertieren.

Quick-Fix, um ein Feld schreibgeschützt zu machen

Stile für C#-Modifikatoren

C#-Modifikatoren von Typen und Typmembern können in einer beliebigen Reihenfolge geschrieben werden. Jedoch ist die einheitliche Anordnung in Ihrem gesamten Code eine bewährte Methode zur Verbesserung der Codelesbarkeit. ReSharper hilft Ihnen bei der Festlegung der gewünschten Reihenfolge, dem Finden unsortierter Modifikatoren und der automatischen Sortierung.

Abgesehen davon unterstützt ReSharper Sie bei der Umsetzung Ihrer Präferenzen bezüglich der expliziten Verwendung der Modifikatoren private und internal.

Es ist häufig sinnvoll, den readonly-Modifikator für Felder zu verwenden, die in der Deklaration oder in einem Konstruktor zugewiesen werden und nur Lese-Verwendungen haben. ReSharper schlägt standardmäßig vor, dass Sie ein Feld auf readonly (schreibgeschützt) stellen, wenn die obigen Bedingungen erfüllt wurden.

Alle Präferenzen für Modifikatoren sind konfigurierbar und Sie können diese mit Quick-Fixes und der Codebereinigung anwenden.

Redundanten Code im gewünschten Bereich entfernen

Coderedundanzen entfernen (nur C#)

ReSharper bietet Dutzende Codeinspektionen für redundanten Code an.

Die Mehrheit dieser Redundanzen kann ohne Benutzereingriff bereinigt werden, indem entweder Fix in scope (In Geltungsbereich beheben) oder Code cleanup (Codebereinigung) verwendet wird.

Bei der Entfernung von Coderedundanzen berücksichtigt ReSharper alle anderen Codestil-Einstellungen. Wenn bestimmte Codekonstrukte in den Codestil-Einstellungen als nicht redundant definiert sind, dann werden sie so belassen.

Erweiterte Benennungsstilkonfiguration

Benennungsstil

ReSharper ermöglicht benutzerdefinierte Benennungsstileinstellungen für unterschiedliche Sprachen und Symbole – einschließlich Typen, Namespaces, Schnittstellen, Parametern, Methodeneigenschaften und Ereignissen, statischen und Instanzenfeldern usw.

Für jede Symbolart können Sie eine von fünf Einstellungen zur Groß- und Kleinschreibung konfigurieren sowie Präfixe und Suffixe, Variationen für unterschiedliche Zugriffsrechte, beizubehaltende Abkürzungen und andere Optionen einstellen.

Alle Verstöße gegen den Benennungsstil werden im Editor hervorgehoben und können leicht behoben werden.

Sie können zusätzlich alle Benennungsstilverstöße in Ihrer gesamten Lösung (oder in einem engeren Bereich) im Fenster Inspection Results durchsuchen (und schnell beheben), indem Sie die Funktion Codeprobleme finden verwenden.

Stil einstellen, um Using-Anweisungen zu optimieren

Stil für Namespace-Importe

Um Ihren Code leserlicher zu machen, können Sie redundante Using-Anweisungen entfernen und/oder qualifizierte Verweise in Ihren C#- und VB.NET-Codedateien kürzen. Außerdem gibt es verschiedene Herangehensweisen für das Importieren von Namespaces – Sie können entweder using/import-Anweisungen hinzufügen oder vollständig qualifizierte Typnamen verwenden. Die Anweisungen wiederum können Sie ganz oben in Ihrer Datei oder innerhalb eines Namespaces platzieren usw.

Mit ReSharper können Sie redundante Importe direkt im Editor schnell erkennen und entfernen oder Sie können die Codebereinigung verwenden, die Ihnen zusätzlich beim alphabetischen Sortieren der benötigten Anweisungen hilft und diese in einer #region zusammenfassen kann.

Verwendung von in C# eingebauten Typschlüsselwörtern anstelle von CLR-Typnamen

Referenzstil für integrierte C#-Typen

Bei integrierten C#-Typen sind C#-Typschlüsselwörter und .Net Framework-(CLR-)Typnamen sind austauschbar. Wenn Sie bei integrierten Typnamen einen einheitlichen Stil beibehalten wollen, dann kann ReSharper Ihnen dabei helfen.

Die Präferenz ist konfigurierbar und kann auch mit der Codebereinigung durchgesetzt werden.

Mehrere C#-Attribute automatisch trennen

Stile für C#-Attribute

Mehrere Attribute können in C# auf unterschiedliche Arten geschrieben werden: Sie können mehrere Attribute in demselben Abschnitt mit eckigen Klammern verbinden oder mehrere Abschnitte für unterschiedliche Attribute verwenden. ReSharper erlaubt Ihnen, den Stil für mehrere Attribute zu spezifizieren und diesen Stil in dem gewünschten Bereich umzusetzen:

ReSharper bietet auch mehrere Formatierungsregeln für Attribute und erlaubt es, mithilfe der Codebereinigung alle Stilpräferenzen für Attribute in einem Zug anzuwenden.

Redundante Mitgliedqualifizierer entfernen

Stile für optionale Mitgliedqualifizierer

In C# können Sie Instanzmitglieder mit dem Schlüsselwort this qualifizieren, während statische Member mit einem Typnamen oder einem Basistypnamen qualifiziert werden können. Diese Qualifizierer ermöglichen die eindeutige Identifizierung von Mitgliedern, die durch lokale Variablen oder Methodenparameter verdeckt sind. In allen anderen Fällen sind diese Modifizierer optional und Sie können selbst entscheiden, ob Sie diese verwenden wollen oder nicht. Standardmäßig behandelt ReSharper alle optionalen Mitgliedqualifizierer als redundant und schlägt vor, diese zu entfernen.

Wenn Sie es jedoch vorziehen, optionale Qualifizierer zu verwenden, dann können Sie das in den entsprechenden Einstellungen für den Codestil konfigurieren. Beispielsweise ziehen Sie es möglicherweise vor, statische Methoden mit dem Typ zu qualifizieren, in dem sie deklariert wurden.

Redundante Klammern entfernen

Stile für optionale Klammern

In vielen Fällen sind Klammern in Ausdrücken optional. Manchmal verdeutlichen sie die Rangfolge der Operationen, z. B. if ((a & b) | c), manchmal helfen sie jedoch überhaupt nicht und tragen zu totem Code bei: var d = a + (b + c);. ReSharper hilft Ihnen zu erkennen, wo optionale Klammern hilfreich sind, um dann redundante Klammern zu entfernen und bei nicht offensichtlichen Rangfolgen von Operationen automatisch Klammern hinzuzufügen.

Layout der Typmitglieder

Datei- und Typ-Layout (nur C#)

ReSharper kann im C#-Code automatisch Datei- und Typmitglieder neu anordnen. Die Mitglieder/innen werden sortiert, gruppiert und an spezifischen Stellen zusammengefasst usw., abhängig von deren Art und Zugriffsmodifizierern. ReSharper bietet zwei Standardlayoutmuster (Sätze von Neuordnungsregeln) und einen intelligenten visuellen Editor.

Hinweis zu Tastenkombinationen

Alle auf dieser Seite angegebenen Tastenkürzel sind in der standardmäßigen "Visual Studio"-Tastaturbelegung von ReSharper verfügbar. Weitere Informationen zu den beiden Tastaturbelegungen von ReSharper finden Sie in der ReSharper-Dokumentation.