Předvolby závorek (IDE0047 a IDE0048)
Tento článek popisuje dvě související pravidla, IDE0047
a IDE0048
.
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0047 |
Název | Odebrání nepotřebných závorek |
Kategorie | Styl |
Subcategory | Jazyková pravidla (předvolby v závorkách) |
Příslušné jazyky | C# a Visual Basic |
Zaváděná verze | Visual Studio 2017 |
Možnosti | 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 |
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0048 |
Název | Přidání závorek pro přehlednost |
Kategorie | Styl |
Subcategory | Jazyková pravidla (předvolby v závorkách) |
Příslušné jazyky | C# a Visual Basic |
Zaváděná verze | Visual Studio 2017 |
Možnosti | 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 |
Přehled
Pravidla stylu v této části se týkají předvoleb v závorkách, včetně použití závorek k objasnění priorit aritmetických, relačních a jiných binárních operátorů.
Možnosti
Toto pravidlo má přidružené možnosti pro zadání předvoleb na základě typu operátoru:
- Aritmetické binární operátory – dotnet_style_parentheses_in_arithmetic_binary_operators
- Relační binární operátory – dotnet_style_parentheses_in_relational_binary_operators
- Další binární operátory – dotnet_style_parentheses_in_other_binary_operators
- Další operátory – dotnet_style_parentheses_in_other_operators
Informace o konfiguraci možností najdete v tématu Formát možností.
dotnet_style_parentheses_in_arithmetic_binary_operators
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | dotnet_style_parentheses_in_arithmetic_binary_operators | |
Hodnoty možností | always_for_clarity |
Upřednostnění priorit aritmetických operátorů pomocí závorek |
never_if_unnecessary |
Pokud je priorita aritmetických operátorů zjevná, raději žádné závorky | |
Výchozí hodnota možnosti | always_for_clarity |
Aritmetické binární operátory jsou: , , , , , , , , &
, ^
, a |
. <<
>>
-
+
%
/
*
// 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
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | dotnet_style_parentheses_in_relational_binary_operators | |
Hodnoty možností | always_for_clarity |
Upřednostnění priorit relačních operátorů upřednostněním závorek |
never_if_unnecessary |
Pokud je priorita relačních operátorů zřejmá, raději nepoužívejte závorky. | |
Výchozí hodnota možnosti | always_for_clarity |
Relační binární operátory jsou: >
, <
, , >=
<=
, is
, as
==
a !=
.
// 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
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | dotnet_style_parentheses_in_other_binary_operators | |
Hodnoty možností | always_for_clarity |
Preferovat závorky k objasnění priorit jiných binárních operátorů |
never_if_unnecessary |
Raději nepoužívejte závorky, pokud je zřejmá priorita jiného binárního operátoru | |
Výchozí hodnota možnosti | always_for_clarity |
Další binární operátory jsou: &&
, ||
a ??
.
// 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
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | dotnet_style_parentheses_in_other_operators | |
Hodnoty možností | always_for_clarity |
Preferovat závorky k objasnění priorit jiných operátorů |
never_if_unnecessary |
Raději nepoužívejte závorky, pokud je zřejmá priorita jiného operátoru | |
Výchozí hodnota možnosti | never_if_unnecessary |
Tato možnost platí pro jiné operátory než následující:
*
, /
, %
, +
, -
, <<
, >>
, &
, ^
, |
>
, <
, <=
, >=
, 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
Potlačení upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které pravidlo zakažou a znovu ho povolí.
#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v konfiguračním souboru na none
.
[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none
Pokud chcete zakázat všechna pravidla stylu kódu, nastavte v konfiguračním souboru závažnost pro kategorii Style
na none
.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace najdete v tématu Jak potlačit upozornění analýzy kódu.