Udostępnij za pośrednictwem


Preferencje nawiasów (IDE0047 i IDE0048)

W tym artykule opisano dwie powiązane reguły IDE0047 i IDE0048.

Właściwość Wartość
Identyfikator zasady IDE0047
Tytuł Usuwanie niepotrzebnych nawiasów
Kategoria Styl
Subcategory (Podkategoria) Reguły języka (preferencje nawiasów)
Odpowiednie języki C# i Visual Basic
Wprowadzona wersja Visual Studio 2017
Opcje 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
Właściwość Wartość
Identyfikator zasady IDE0048
Tytuł Dodawanie nawiasów w celu uzyskania jasności
Kategoria Styl
Subcategory (Podkategoria) Reguły języka (preferencje nawiasów)
Odpowiednie języki C# i Visual Basic
Wprowadzona wersja Visual Studio 2017
Opcje 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

Omówienie

Reguły stylu w tej sekcji dotyczą preferencji nawiasów, w tym użycia nawiasów w celu wyjaśnienia pierwszeństwa dla arytmetycznych, relacyjnych i innych operatorów binarnych.

Opcje

Ta reguła ma skojarzone opcje określania preferencji na podstawie typu operatora:

Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.

dotnet_style_parentheses_in_arithmetic_binary_operators

Właściwość Wartość Opis
Nazwa opcji dotnet_style_parentheses_in_arithmetic_binary_operators
Wartości opcji always_for_clarity Preferuj nawiasy, aby wyjaśnić pierwszeństwo operatora arytmetycznego
never_if_unnecessary Preferuj brak nawiasów, gdy pierwszeństwo operatora arytmetycznego jest oczywiste
Wartość opcji domyślnej always_for_clarity

Operatory binarne arytmetyczne to: *, , %<<+/>>&-^i .|

// 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

Właściwość Wartość Opis
Nazwa opcji dotnet_style_parentheses_in_relational_binary_operators
Wartości opcji always_for_clarity Preferuj nawiasy, aby wyjaśnić pierwszeństwo operatora relacyjnego
never_if_unnecessary Preferuj nie mieć nawiasów, gdy pierwszeństwo operatora relacyjnego jest oczywiste
Wartość opcji domyślnej always_for_clarity

Operatory binarne relacyjne to: >, , <<=, is>=as, ==i !=.

// 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

Właściwość Wartość Opis
Nazwa opcji dotnet_style_parentheses_in_other_binary_operators
Wartości opcji always_for_clarity Preferuj nawiasy, aby wyjaśnić inne pierwszeństwo operatora binarnego
never_if_unnecessary Preferuj nie mieć nawiasów, gdy inne pierwszeństwo operatora binarnego jest oczywiste
Wartość opcji domyślnej always_for_clarity

Inne operatory binarne to: &&, ||i ??.

// 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

Właściwość Wartość Opis
Nazwa opcji dotnet_style_parentheses_in_other_operators
Wartości opcji always_for_clarity Preferuj nawiasy, aby wyjaśnić inne pierwszeństwo operatora
never_if_unnecessary Preferuj nie mieć nawiasów, gdy pierwszeństwo innych operatorów jest oczywiste
Wartość opcji domyślnej never_if_unnecessary

Ta opcja dotyczy operatorów innych niż następujące:

*, /, %, +, -, <<, >>, &, ^, |>, <, <=, >=, 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

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none

Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność kategorii Style na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też