Share via


Voorkeuren voor haakjes (IDE0047 en IDE0048)

In dit artikel worden twee gerelateerde regels beschreven, IDE0047 en IDE0048.

Eigenschap Waarde
Regel-id IDE0047
Titel Overbodige haakjes verwijderen
Categorie Stijl
Subcategorie Taalregels (voorkeuren voor haakjes)
Toepasselijke talen C# en Visual Basic
Geïntroduceerde versie Visual Studio 2017
Opties 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
Eigenschap Waarde
Regel-id IDE0048
Titel Haakjes toevoegen voor duidelijkheid
Categorie Stijl
Subcategorie Taalregels (voorkeuren voor haakjes)
Toepasselijke talen C# en Visual Basic
Geïntroduceerde versie Visual Studio 2017
Opties 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

Overzicht

De stijlregels in deze sectie hebben betrekking op voorkeuren voor haakjes, waaronder het gebruik van haakjes om de prioriteit voor rekenkundige, relationele en andere binaire operatoren te verduidelijken.

Opties

Aan deze regel zijn opties gekoppeld om voorkeuren op te geven op basis van het type operator:

Zie Optie-indeling voor meer informatie over het configureren van opties.

dotnet_style_parentheses_in_arithmetic_binary_operators

Eigenschap Waarde Beschrijving
Naam van optie dotnet_style_parentheses_in_arithmetic_binary_operators
Optiewaarden always_for_clarity Liever haakjes om de prioriteit van rekenkundige operatoren te verduidelijken
never_if_unnecessary Geef de voorkeur aan geen haakjes als de prioriteit van rekenkundige operator duidelijk is
Waarde van standaardoptie always_for_clarity

De rekenkundige binaire operatoren zijn: *, /, , %, +, -, <<, >>, &, ^en |.

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

Eigenschap Waarde Beschrijving
Naam van optie dotnet_style_parentheses_in_relational_binary_operators
Optiewaarden always_for_clarity Geef de voorkeur aan haakjes om de prioriteit van relationele operatoren te verduidelijken
never_if_unnecessary Gebruik liever geen haakjes wanneer de prioriteit van de relationele operator duidelijk is
Waarde van standaardoptie always_for_clarity

De relationele binaire operatoren zijn: , , , , >=, asis, ==en !=. <=<>

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

Eigenschap Waarde Beschrijving
Naam van optie dotnet_style_parentheses_in_other_binary_operators
Optiewaarden always_for_clarity Geef de voorkeur aan haakjes om de prioriteit van andere binaire operatoren te verduidelijken
never_if_unnecessary Gebruik liever geen haakjes als de prioriteit van een andere binaire operator duidelijk is
Waarde van standaardoptie always_for_clarity

De andere binaire operatoren zijn: &&, ||en ??.

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

Eigenschap Waarde Beschrijving
Naam van optie dotnet_style_parentheses_in_other_operators
Optiewaarden always_for_clarity Geef de voorkeur aan haakjes om de prioriteit van andere operatoren te verduidelijken
never_if_unnecessary Gebruik liever geen haakjes als de prioriteit van een andere operator duidelijk is
Waarde van standaardoptie never_if_unnecessary

Deze optie is van toepassing op andere operators dan de volgende:

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

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessor-instructies toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst in op none in het configuratiebestand.

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

Als u alle codestijlregels wilt uitschakelen, stelt u de ernst voor de categorie Style in op none in het configuratiebestand.

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

Zie Waarschuwingen voor codeanalyse onderdrukken voor meer informatie.

Zie ook