Sprache und unnötige Regeln

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 eines 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) oder false (dieses Format nicht bevorzugen). Andere Regeln akzeptieren Werte wie when_on_single_line oder never.

  • 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 den AnalysisLevel oder die Eigenschaft auf 9.0 oder höher oder auf preview.<<AnalysisLevelStyle>>
    • 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.

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.

using Anweisungseinstellungen

.NET-Stilregeln (C# und Visual Basic):

C#-Formatregeln:

Codeblockeinstellungen

C#-Formatregeln:

Ausdruckskörpermember

C#-Formatregeln:

Einstellungen auf Ausdrucksebene

.NET-Stilregeln (C# und Visual Basic):

C#-Formatregeln:

Visual Basic-Formatregeln:

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:

Einstellungen für neue Zeilen

  • Mehrere Leerzeilen zulassen (IDE2000)
  • Eingebettete Anweisungen in derselben Zeile zulassen (IDE2001)
  • Leerzeilen zwischen aufeinanderfolgenden Klammern zulassen (IDE2002)
  • Anweisung direkt nach Block zulassen (IDE2003)
  • Leere Zeile nach Doppelpunkt in Konstruktorinitialisierer zulassen (IDE2004)
  • Leerzeile nach Token im bedingten Ausdruck zulassen (IDE2005)
  • Leere Zeile nach Token im Pfeilausdruck zulassen (IDE2006)

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:

Unterdrückungseinstellungen

.NET-Stilregeln (C# und Visual Basic):

This. und me. Einstellungen

.NET-Stilregeln (C# und Visual Basic):

var Einstellungen

C#-Formatregeln:

Siehe auch