Dela via


Parentesinställningar (IDE0047 och IDE0048)

Den här artikeln beskriver två relaterade regler, IDE0047 och IDE0048.

Egenskap Värde
Regel-ID IDE0047
Titel Ta bort onödiga parenteser
Kategori Stil
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 Stil
underkategori Språkregler (parentesinställningar)
Tillämpliga språk C# och Visual Basic
Införd 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

Överblick

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

Alternativ

Den här regeln har associerade alternativ för att ange inställningar baserat på typen 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_parenteser_i_aritmetiska_binära_operatorer
Alternativvärden always_for_clarity Föredrar parenteser för att klargöra aritmetikoperatorns prioritet
never_if_unnecessary Föredrar inga parenteser när aritmetikoperatorns prioritet är uppenbar
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_stil_parenteser_i_relationella_binära_operatorer

Egenskap Värde Beskrivning
Alternativnamn dotnet_style_parentheses_in_relational_binary_operators
Alternativvärden always_for_clarity Föredrar parenteser för att klargöra prioriteten 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 Föredra parenteser för att klargöra andra binära operators prioritet
never_if_unnecessary Föredrar att inte ha parenteser när andra binäroperatorprioret är uppenbart
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_stil_parenteser_i_andra_operatorer
Alternativvärden always_for_clarity Föredrar parenteser för att klargöra andra operatorprioreter
never_if_unnecessary Föredrar att inte ha parenteser när andra operatorprioret är uppenbart
standardalternativvärde never_if_unnecessary

Det här alternativet gäller för operatorer andra ä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

Undertryck en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan regeln.

#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 kodformat 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