Einstellungen für Klammern (IDE0047 und IDE0048)

In diesem Artikel werden zwei verwandte Regeln beschrieben: IDE0047 und IDE0048.

Eigenschaft Wert
Regel-ID IDE0047
Titel Unnötige Klammern entfernen
Kategorie Stil
Unterkategorie Sprachregeln (Einstellungen für Klammern)
Gültige Sprachen C# und Visual Basic
Eingeführt in Version Visual Studio 2017
Optionen dotnet_style_parentheses_in_arithmetic_binary_operators
dotnet_style_parentheses_in_relational_binary_operators
dotnet_style_parentheses_in_other_binary_operators
dotnet_style_parentheses_in_other_operators
Eigenschaft Wert
Regel-ID IDE0048
Titel Zur besseren Unterscheidung Klammern hinzufügen
Kategorie Stil
Unterkategorie Sprachregeln (Einstellungen für Klammern)
Gültige Sprachen C# und Visual Basic
Eingeführt in Version Visual Studio 2017
Optionen dotnet_style_parentheses_in_arithmetic_binary_operators
dotnet_style_parentheses_in_relational_binary_operators
dotnet_style_parentheses_in_other_binary_operators
dotnet_style_parentheses_in_other_operators

Übersicht

Die Stilregeln in diesem Abschnitt betreffen Einstellungen für Klammern, einschließlich der Verwendung von Klammern zur Verdeutlichung des Vorrangs bei arithmetischen, relationalen und anderen binären Operatoren.

Optionen

Diese Regel enthält Optionen zum Angeben von Einstellungen basierend auf dem Operatortyp:

Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.

dotnet_style_parentheses_in_arithmetic_binary_operators

Eigenschaft Wert Beschreibung
Name der Option dotnet_style_parentheses_in_arithmetic_binary_operators
Optionswerte always_for_clarity Klammern zur Verdeutlichung des Vorrangs bei arithmetischen Operatoren bevorzugen
never_if_unnecessary Keine Klammern bevorzugen, wenn der Vorrang bei arithmetischen Operatoren offensichtlich ist
Standardoptionswert always_for_clarity

Dies sind die arithmetischen binären Operatoren: *, /, %, +, -, <<, >>, &, ^ und |.

// dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
var v = a + (b * c);

// dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
var v = a + b * c;
' dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
Dim v = a + (b * c)

' dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
Dim v = a + b * c

dotnet_style_parentheses_in_relational_binary_operators

Eigenschaft Wert Beschreibung
Name der Option dotnet_style_parentheses_in_relational_binary_operators
Optionswerte always_for_clarity Klammern zur Verdeutlichung des Vorrangs bei relationalen Operatoren bevorzugen
never_if_unnecessary Keine Klammern bevorzugen, wenn der Vorrang bei relationalen Operatoren offensichtlich ist
Standardoptionswert always_for_clarity

Dies sind die relationalen binären Operatoren: >, <, <=, >=, is, as, == und !=.

// dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
var v = (a < b) == (c > d);

// dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
var v = a < b == c > d;
' dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
Dim v = (a < b) = (c > d)

' dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
Dim v = a < b = c > d

dotnet_style_parentheses_in_other_binary_operators

Eigenschaft Wert Beschreibung
Name der Option dotnet_style_parentheses_in_other_binary_operators
Optionswerte always_for_clarity Klammern zur Verdeutlichung des Vorrangs bei anderen binären Operatoren bevorzugen
never_if_unnecessary Keine Klammern bevorzugen, wenn der Vorrang bei anderen binären Operatoren offensichtlich ist
Standardoptionswert always_for_clarity

Dies sind die anderen binären Operatoren: &&, || und ??.

// dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
var v = a || (b && c);

// dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
var v = a || b && c;
' dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
Dim v = a OrElse (b AndAlso c)

' dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
Dim v = a OrElse b AndAlso c

dotnet_style_parentheses_in_other_operators

Eigenschaft Wert Beschreibung
Name der Option dotnet_style_parentheses_in_other_operators
Optionswerte always_for_clarity Klammern zur Verdeutlichung des Vorrangs bei anderen Operatoren bevorzugen
never_if_unnecessary Keine Klammern bevorzugen, wenn der Vorrang bei anderen Operatoren offensichtlich ist
Standardoptionswert never_if_unnecessary

Diese Option gilt für Operatoren, bei denen es sich nicht um die folgenden handelt:

*, /, %, +, -, <<, >>, &, ^, |>, <, <=, >=, is, as, ==, !=&&, ||, ??

// dotnet_style_parentheses_in_other_operators = always_for_clarity
var v = (a.b).Length;

// dotnet_style_parentheses_in_other_operators = never_if_unnecessary
var v = a.b.Length;
' dotnet_style_parentheses_in_other_operators = always_for_clarity
Dim v = (a.b).Length

' dotnet_style_parentheses_in_other_operators = never_if_unnecessary
Dim v = a.b.Length

Unterdrücken einer Warnung

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.

#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none fest.

[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none

Um alle Regeln im Code-Stil zu deaktivieren, setzen Sie den Schweregrad für die Kategorie in der KonfigurationsdateiStyle auf none.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Siehe auch