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.
Codestil-Sprachregeln beeinflussen, wie verschiedene Konstrukte von .NET Programmiersprachen verwendet werden, z. B. Modifizierer und Klammern.
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 Formatvorlagenregeln: 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 Formatvorlagenregeln: Regeln, die für Visual Basic Code spezifisch sind. 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.Severity (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 späteren Versionen wird der Schweregrad immer beachtet, d.h. innerhalb der Entwicklungs-IDEs und während der Befehlszeilen-Builds. In .NET 8 und früheren Versionen wird diese Schweregradeinstellung nur innerhalb von Entwicklungs-IDEs wie Visual Studio und not 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 eine von 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
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.
-
usingAnweisung Einstellungen - Codeblockeinstellungen
- Expression-bodied Mitglieder
- 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 Richtlinie Einstellungen
.NET Formatvorlagenregeln (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)
- Ausdruckkörper für Indexierer verwenden (IDE0026)
- Ausdruckstext für Accessoren verwenden (IDE0027)
- Ausdruckskörper für Lambdaausdrücke verwenden (IDE0053)
- Ausdruckskörper für lokale Funktionen verwenden (IDE0061)
Präferenzen auf Expressionsebene
.NET Formatvorlagenregeln (C# und Visual Basic):
- Namen vereinfachen (IDE0001)
- Mitgliedszugriff vereinfachen (IDE0002)
- Unnötige Umwandlungen entfernen (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)
- Vereinfache 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 Groß- und Kleinschreibung beim Switch-Ausdruck hinzufügen (IDE0072)
- Den unnötigen Unterdrückungsoperator entfernen (IDE0080)
-
Vereinfachen
new-Ausdruck (IDE0090) - Unnötige Ausschussvariable entfernen (IDE0110)
- „NULL“-Überprüfung vor Typüberprüfung bevorzugen (IDE0150)
- Tupel zum Tauschen von Werten verwenden (IDE0180)
- Explizite Umwandlung in foreach-Schleife hinzufügen (IDE0220)
- Explizite Umwandlung hinzufügen (IDE0221)
- 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)
- Zugriff auf Eigenschaften vereinfachen (IDE0360)
Visual Basic Stilregeln:
-
Entfernen von
ByVal(IDE0081) -
Musterabgleich verwenden (
IsNot-Operator) (IDE0084) - Vereinfachen der Objekterstellung (IDE0140)
Einstellungen für Felder
.NET Formatvorlagenregeln (C# und Visual Basic):
Einstellungen für Sprach- Schlüsselwort und Frameworktypen
.NET Formatvorlagenregeln (C# und Visual Basic):
Einstellungen von Modifizierern
.NET Formatvorlagenregeln (C# und Visual Basic):
C#-Formatregeln:
- Lokale Funktion als „static“ festlegen (IDE0062)
- Beschreibbare Strukturfelder erstellen (IDE0064)
- Struktur kann 'schreibgeschützt' gemacht werden (IDE0250)
- Mitglied kann 'schreibgeschützt' gemacht werden (IDE0251)
- Anonyme Funktion statisch machen (IDE0320)
-
unsafeUnnötigen Modifizierer entfernen (IDE0380)
Einstellungen für neue Zeilen
.NET Formatvorlagenregeln (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)
- Zwischen aufeinanderfolgenden geschweiften Klammern darf keine Leerzeile stehen (IDE2002)†
- Nach dem Doppelpunkt im Konstruktorinitialisierer ist keine Leerzeile zulässig (IDE2004)†
- 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 Formatvorlagenregeln (C# und Visual Basic):
Einstellungen für Klammern
.NET Formatvorlagenregeln (C# und Visual Basic):
Einstellungen für den Musterabgleich
C#-Formatregeln:
- Mustervergleich verwenden, um die Prüfung von 'as' gefolgt von 'null' zu vermeiden (IDE0019)
- Musterabgleich verwenden, um 'is'-Prüfung gefolgt von einer Umwandlung zu vermeiden (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 Formatvorlagenregeln (C# und Visual Basic):
C#-Formatregeln:
This. und me. Einstellungen
.NET Formatvorlagenregeln (C# und Visual Basic):
var Einstellungen
C#-Formatregeln: