Share via


Parentesinställningar (IDE0047 och IDE0048)

I den här artikeln beskrivs två relaterade regler, IDE0047 och IDE0048.

Egenskap Värde
Regel-ID IDE0047
Rubrik Ta bort onödiga parenteser
Kategori Format
Underkategori Språkregler (parentesinställningar)
Tillämpliga språk C# och Visual Basic
Introducerad version Visual Studio 2017
Alternativ 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
Egenskap Värde
Regel-ID IDE0048
Rubrik Lägg till parenteser för tydlighetens skull
Kategori Format
Underkategori Språkregler (parentesinställningar)
Tillämpliga språk C# och Visual Basic
Introducerad version Visual Studio 2017
Alternativ 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

Översikt

Stilreglerna i det här avsnittet gäller parentesinställningar, inklusive användningen av parenteser för att klargöra prioriteten för aritmetiska, relationsbaserade och andra binära operatorer.

Alternativ

Den här regeln har associerade alternativ för att ange inställningar baserat på typ av operator:

Information om hur du konfigurerar alternativ finns i Alternativformat.

dotnet_style_parentheses_in_arithmetic_binary_operators

Egenskap Värde Beskrivning
Alternativnamn dotnet_style_parentheses_in_arithmetic_binary_operators
Alternativvärden always_for_clarity Prioritera parenteser för att förtydliga aritmetiska operatorprioriter
never_if_unnecessary Föredra inga parenteser när aritmetiska operatorprioreter är uppenbart
Standardalternativvärde always_for_clarity

De aritmetiska binära operatorerna är: *, /, %, +, -, <<, >>, &, ^och |.

// 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

Egenskap Värde Beskrivning
Alternativnamn dotnet_style_parentheses_in_relational_binary_operators
Alternativvärden always_for_clarity Prioritera parenteser för att klargöra prioritet för relationsoperatorer
never_if_unnecessary Föredrar att inte ha parenteser när prioriteten för relationsoperatorn är uppenbar
Standardalternativvärde always_for_clarity

De binära relationsoperatorerna är: >, <, <=, >=, is, as, ==och !=.

// 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

Egenskap Värde Beskrivning
Alternativnamn dotnet_style_parentheses_in_other_binary_operators
Alternativvärden always_for_clarity Prioritera parenteser för att förtydliga andra binäroperatorpriorior
never_if_unnecessary Föredrar att inte ha parenteser när andra binäroperatorpriorior är uppenbara
Standardalternativvärde always_for_clarity

De andra binära operatorerna är: &&, ||och ??.

// 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

Egenskap Värde Beskrivning
Alternativnamn dotnet_style_parentheses_in_other_operators
Alternativvärden always_for_clarity Prioritera parenteser för att förtydliga andra operatorprioreter
never_if_unnecessary Föredrar att inte ha parenteser när andra operatorprioreter är uppenbara
Standardalternativvärde never_if_unnecessary

Det här alternativet gäller för andra operatorer än följande:

*, /, %, +, -, <<, >>, &, ^, |>, <, <=, >=, 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

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till preprocessor-direktiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Om du vill inaktivera alla regler i kodstil anger du allvarlighetsgraden för kategorin Style till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även