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:
- Arithmetische binäre Operatoren: dotnet_style_parentheses_in_arithmetic_binary_operators
- Relationale binäre Operatoren: dotnet_style_parentheses_in_relational_binary_operators
- Andere binäre Operatoren: dotnet_style_parentheses_in_other_binary_operators
- Andere Operatoren: dotnet_style_parentheses_in_other_operators
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.