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_.
Optionsformat
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 erzwingt, welche Optionen Sie auf einer angegebenen Ebene auswählen, 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 definiert, ob oder wann Sie das Format 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 während 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 den Schweregrad mithilfe der Regel-ID-basierten Schweregradkonfigurationssyntax für Analysegeräte 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
Ab Visual Studio 2019 können Sie Regeln für Codeformate über das Fehlerbehebungsmenü Schnellaktionen konfigurieren, wenn ein Formatverstoß auftritt.
Regelindex
Sprach- und unnötige Coderegeln werden weiter in Unterkategorien unterteilt, z. B. Einstellungen auf Ausdrucksebene, Codeblockeinstellungen und Modifizierereinstellungen.
-
usingAnweisungseinstellungen - Codeblockeinstellungen
- Ausdruckskörpermember
- 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-Überprü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:
Codeblockeinstellungen
C#-Formatregeln:
- Geschweifte Klammern hinzufügen (IDE0011)
- Einfache using-Anweisung verwenden (IDE0063)
- Namespacedeklarationseinstellungen (IDE0160, IDE0161)
- Unnötigen Lambdaausdruck entfernen“ (IDE0200)
- In Anweisungen der obersten Ebene konvertieren (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)
- Ausdruckskörper für Methoden verwenden (IDE0022)
- Verwenden des Ausdruckstexts 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)
Einstellungen auf Ausdrucksebene
.NET-Stilregeln (C# und Visual Basic):
- Namen vereinfachen (IDE0001)
- Memberzugriff 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 Tupelelementnamen 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)
- Inlinevariablendeklaration (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)
- Unnötigen Unterdrückungsoperator entfernen (IDE0080)
-
new-Ausdruck vereinfachen (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 des UTF-8-Zeichenfolgenliterals (IDE0230)
- Nullable-Direktive ist überflüssig (IDE0240)
- Nullable-Anweisung 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)
- Sammlungsausdruck für „fluent“ verwenden (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)
Einstellungen für Felder
.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 „readonly“ gemacht werden (IDE0250)
- Member kann als „readonly“ festgelegt werden (IDE0251)
- Anonyme Funktion statisch machen (IDE0320)
-
unsafeUnnötigen Modifizierer entfernen (IDE0380)
Einstellungen für neue Zeilen
.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:
Parametereinstellungen
.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 des switch-Ausdrucks (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: