Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sprachregeln für die Codeformatierung wirken sich darauf aus, wie verschiedene Konstrukte von .NET-Programmiersprachen, z. B. Modifizierer und Klammern, verwendet werden.
Diese Kategorie beinhaltet auch Regeln, die verschiedene Teile der Codebasis identifiziert, die unnötig sind und neu faktoriert oder entfernt werden können. Das Vorhandensein von unnötigem Code weist auf ein oder mehrere der folgenden Probleme hin:
- Lesbarkeit: Code, der eine unnötige Verringerung der Lesbarkeit verursacht.
- Wartbarkeit: Code, der nach dem Refactoring nicht mehr verwendet wird und unnötig verwaltet wird.
- Leistung: unnötige Berechnung, die keine Nebenwirkungen hat und zu unnötigem Leistungsaufwand führt.
- Funktionalität: Funktionales Problem im Code, das dazu führt, dass erforderlicher Code redundant wird. IDE0060 kennzeichnet beispielsweise nicht verwendete Parameter, bei denen die Methode versehentlich einen Eingabeparameter ignoriert.
Die Sprachregeln werden in die folgenden Kategorien eingeteilt:
- .NET-Formatierungsregeln: Regeln, die sowohl für C# als auch für Visual Basic gelten. Die Optionsnamen für diese Regeln beginnen mit dem Präfix
dotnet_style_. - C#-Formatregeln: Regeln, die speziell für C#-Code gelten. Die Optionsnamen für diese Regeln beginnen mit dem Präfix
csharp_style_. - Visual Basic-Formatregeln: Regeln, die speziell für Visual Basic-Code gelten. Die Optionsnamen für diese Regeln beginnen mit dem Präfix
visual_basic_style_.
Format der Optionen
Viele der Sprachregeln verfügen über eine oder mehrere zugeordnete Optionen zum Anpassen des bevorzugten Stils.
Verwenden einer einfachen "using"-Anweisung (IDE0063) verfügt beispielsweise über die zugehörige Option csharp_prefer_simple_using_statement, mit der Sie definieren können, ob Sie eine using Deklaration oder eine using Anweisung bevorzugen. Die Regel setzt die von Ihnen gewählten Optionen auf einer angegebenen Ebene durch, z. B. Warnung oder Fehler.
Optionen für Sprachregeln können in einer Konfigurationsdatei im folgenden Format angegeben werden:
option_name = value (Visual Studio 2019 und höher)
oder
option_name = value:severity
Wert
Für jede Sprachregel geben Sie einen Wert an, der festlegt, ob oder wann Sie den Stil bevorzugen. Viele Regeln akzeptieren den Wert
true(dieses Format bevorzugen) oderfalse(dieses Format nicht bevorzugen). Andere Regeln akzeptieren Werte wiewhen_on_single_lineodernever.Schweregrad (optional in Visual Studio 2019 und höheren Versionen)
Der zweite Teil der Regel gibt den Schweregrad für die Regel an. In .NET 9 und höheren Versionen wird der Schweregrad immer beachtet – d. h. innerhalb von Entwicklungs-IDEs und bei Befehlszeilenbuilds. In .NET 8 und früheren Versionen wird diese Schweregradeinstellung nur innerhalb von Entwicklungs-IDEs wie Visual Studio und nicht während des Builds berücksichtigt.
Wenn Sie das .NET 8 SDK oder eine frühere Version verwenden und den Schweregrad zur Buildzeit beachten möchten, können Sie dies auf zwei Arten tun:
- Legen Sie die Eigenschaft
<AnalysisLevel>auf<AnalysisLevelStyle>oder9.0oder höher fest oder aufpreview. - Legen Sie stattdessen den Schweregrad mithilfe der regel-ID-basierten Konfigurationssyntax für Analyzer fest. Die Syntax sieht wie folgt aus:
dotnet_diagnostic.<rule ID>.severity = <severity>. Beispiel:dotnet_diagnostic.IDE0040.severity = warning. Weitere Informationen finden Sie unter Schweregrad.
- Legen Sie die Eigenschaft
Tipp
Seit Visual Studio 2019 können Sie Code-Stilregeln über das Menü Schnellaktionen konfigurieren, nachdem ein Stilverstoß aufgetreten ist.
Regelindex
Sprach- und unnötige Coderegeln werden weiter in Unterkategorien unterteilt, z. B. Einstellungen auf Ausdrucksebene, Codeblockeinstellungen und Modifizierereinstellungen.
-
usingAnweisungseinstellungen - Codeblockeinstellungen
- Mitglied mit Ausdruckskörper
- Einstellungen auf Ausdrucksebene
- Feldeinstellungen
- Einstellungen für Sprach- Schlüsselwort und Frameworktypen
- Einstellungen von Modifizierern
- Einstellungen für neue Zeilen
- Einstellungen für die Null-Prüfung
- Parametereinstellungen
- Einstellungen für Klammern
- Einstellungen für den Musterabgleich
- Unterdrückungseinstellungen
-
This.undme.Einstellungen -
varEinstellungen
using Anweisungseinstellungen
.NET-Stilregeln (C# und Visual Basic):
C#-Formatregeln:
Codeblock-Einstellungen
C#-Formatregeln:
- Geschweifte Klammern hinzufügen (IDE0011)
- Einfache using-Anweisung verwenden (IDE0063)
- Namespacedeklarationseinstellungen (IDE0160, IDE0161)
- Unnötigen Lambdaausdruck entfernen“ (IDE0200)
- In Top-Level-Anweisungen umwandeln (IDE0210)
- Zu „Programm.Main“-Formatprogramm konvertieren (IDE0211)
- Verwenden des primären Konstruktors (IDE0290)
- Bevorzugen Sie "System.Threading.Lock" (IDE0330)
Ausdruckskörpermember
C#-Formatregeln:
- Ausdruckskörper für Konstruktoren verwenden (IDE0021)
- Ausdrucksform für Methoden verwenden (IDE0022)
- Verwenden Sie Ausdruckskörper für Operatoren (IDE0023, IDE0024)
- Ausdruckskörper für Eigenschaften verwenden (IDE0025)
- Ausdruckskörper für Indexer verwenden (IDE0026)
- Ausdruckskörper für Zugriffsmethoden verwenden (IDE0027)
- Ausdruckskörper für Lambdaausdrücke verwenden (IDE0053)
- Ausdruckskörper für lokale Funktionen verwenden (IDE0061)
Präferenzen auf Expressionsebene
.NET-Stilregeln (C# und Visual Basic):
- Namen vereinfachen (IDE0001)
- Mitgliedszugriff vereinfachen (IDE0002)
- Entfernen nicht benötigter Umwandlungen (IDE0004)
- Fehlende Fälle zu switch-Anweisung hinzufügen (IDE0010)
- Objektinitialisierer verwenden (IDE0017)
- Auflistungsinitialisierer verwenden (IDE0028)
- Überprüfung auf Nullwerte kann vereinfacht werden (IDE0029, IDE0030, IDE0270)
- NULL-Weitergabe verwenden (IDE0031)
- Automatisch implementierte Eigenschaft verwenden (IDE0032)
- Explizit angegebenen Tupelnamen verwenden (IDE0033)
- Nicht erreichbaren Code entfernen (IDE0035)
- Abgeleitete Membernamen verwenden (IDE0037)
- „is null“-Überprüfung verwenden (IDE0041)
- Bedingten Ausdruck für die Zuweisung verwenden (IDE0045)
- Bedingten Ausdruck für die Rückgabe verwenden (IDE0046)
- Anonymen Typ in Tupel konvertieren (IDE0050)
- Nicht verwendete private Member entfernen (IDE0051)
- Ungelesene private Member entfernen (IDE0052)
- Verbundzuweisung verwenden (IDE0054, IDE0074)
- Unnötigen Ausdruckswert entfernen (IDE0058)
- Unnötige Wertzuweisung entfernen (IDE0059)
- 'System.HashCode.Combine' verwenden (IDE0070)
- Interpolation vereinfachen (IDE0071)
- Bedingten Ausdruck vereinfachen (IDE0075)
-
typeofinnameofkonvertieren (IDE0082) - Entfernen nicht benötigter Gleichheitsoperatoren (IDE0100)
- LINQ-Ausdruck vereinfachen (IDE0120)
- Vereinfachen der LINQ-Typüberprüfung und -umwandlung (IDE0121)
- Namespace entspricht nicht der Ordnerstruktur (IDE0130)
C#-Formatregeln:
- throw-Ausdruck verwenden (IDE0016)
- Inline-Variablendeklaration (IDE0018)
- "default"-Ausdruck vereinfachen (IDE0034)
- Lokale Funktion anstelle von Lambda verwenden (IDE0039)
- Variablendeklaration dekonstruieren (IDE0042)
- Indexoperator verwenden (IDE0056)
- Bereichsoperator verwenden (IDE0057)
- Fehlende Fälle zu switch-Ausdruck hinzufügen (IDE0072)
- Den unnötigen Unterdrückungsoperator entfernen (IDE0080)
-
Vereinfachen
new-Ausdruck (IDE0090) - Nicht benötigte Ausschussvariable entfernen (IDE0110)
- „NULL“-Überprüfung vor Typüberprüfung bevorzugen (IDE0150)
- Tupel zum Tauschen von Werten verwenden (IDE0180)
- Hinzufügen eines expliziten Cast in foreach-Schleife (IDE0220)
- Verwenden Sie das UTF-8-Zeichenliteral (IDE0230)
- Nullable-Direktive ist überflüssig (IDE0240)
- Nullable-Direktive ist unnötig (IDE0241)
- Sammlungsausdruck für Array verwenden (IDE0300)
- Sammlungsausdruck für „Empty“ verwenden (IDE0301)
- Sammlungsausdruck für „stack alloc“ verwenden (IDE0302)
-
Sammlungsausdruck für
Create()verwenden (IDE0303) - Sammlungsausdruck für Builder verwenden (IDE0304)
- Verwenden Sie einen Sammlungsausdruck für Fluent (IDE0305)
- Sammlungsausdruck für neu verwenden (IDE0306)
- Verwenden eines ungebundenen generischen Typs (IDE0340)
- Implizit typierte Lambda-Funktion verwenden (IDE0350)
- Vereinfachen des Eigenschaftenaccessors (IDE0360)
Visual Basic-Formatregeln:
-
Entfernen von
ByVal(IDE0081) -
Musterabgleich verwenden (
IsNot-Operator) (IDE0084) - Vereinfachen der Objekterstellung (IDE0140)
Feldeinstellungen
.NET-Stilregeln (C# und Visual Basic):
Einstellungen für Sprach- Schlüsselwort und Frameworktypen
.NET-Stilregeln (C# und Visual Basic):
Einstellungen von Modifizierern
.NET-Stilregeln (C# und Visual Basic):
C#-Formatregeln:
- Lokale Funktion als „static“ festlegen (IDE0062)
- Beschreibbare Strukturfelder erstellen (IDE0064)
- Struktur kann als 'readonly' deklariert werden (IDE0250)
- Member kann als „readonly“ festgelegt werden (IDE0251)
- Anonyme Funktion statisch machen (IDE0320)
-
unsafeUnnötigen Modifizierer entfernen (IDE0380)
Zeilenumbruch-Einstellungen
.NET-Stilregeln (C# und Visual Basic):
- Vermeiden mehrerer leerer Zeilen (IDE2000)†
- Zwischen Block und nachfolgender Anweisung ist eine leere Zeile erforderlich (IDE2003)†
C#-Formatregeln:
- Eingebettete Anweisungen müssen sich in einer eigenen Zeile befinden (IDE2001)
- Aufeinander folgende geschweifte Klammern dürfen keine leere Linie dazwischen haben (IDE2002)†
- Leere Zeile nach Konstruktorinitialisierungskolons (IDE2004)† nicht zulässig
- Eine leere Zeile ist nach dem Token eines bedingten Ausdrucks nicht zulässig (IDE2005).
- Leere Zeile nach dem Token für Pfeilausdrucksklauseln nicht erlaubt (IDE2006)†
†These Regeln sind experimentell und unterliegen Änderungen oder Entfernungen.
Einstellungen für die NULL-Überprüfung
C#-Formatregeln:
Parameterpräferenzen
.NET-Stilregeln (C# und Visual Basic):
Einstellungen für Klammern
.NET-Stilregeln (C# und Visual Basic):
Einstellungen für den Musterabgleich
C#-Formatregeln:
- Musterabgleich verwenden, um „as“ gefolgt von einer NULL-Überprüfung zu vermeiden (IDE0019)
- Verwenden des Musterabgleichs zur Vermeidung einer Überprüfung vom Typ „is“ gefolgt von einer Umwandlung (IDE0020, IDE0038)
- Verwenden Sie den switch-Ausdruck (IDE0066)
- Verwenden des Musterabgleichs (IDE0078 und IDE0260)
-
Musterabgleich verwenden (
not-Operator) (IDE0083) - Eigenschaftenmuster vereinfachen (IDE0170)
Unterdrückungseinstellungen
.NET-Stilregeln (C# und Visual Basic):
C#-Formatregeln:
This. und me. Einstellungen
.NET-Stilregeln (C# und Visual Basic):
var Einstellungen
C#-Formatregeln: