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:
- Aritmetiska binära operatorer: dotnet_style_parentheses_in_arithmetic_binary_operators
- Binära relationsoperatorer – dotnet_style_parentheses_in_relational_binary_operators
- Andra binära operatorer – dotnet_style_parentheses_in_other_binary_operators
- Andra operatorer – dotnet_style_parentheses_in_other_operators
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.