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:
- 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_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.