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:

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.

Viz také