Delen 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
De 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
Eigendom Waarde
Regel-ID IDE0048
titel Haakjes toevoegen voor duidelijkheid
Categorie Stijl
Subcategorie Taalregels (voorkeuren voor haakjes)
Toepasselijke talen C# en Visual Basic
Introductie van 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 haakjes voorkeuren, inclusief het gebruik van haakjes om de prioriteit voor rekenkundige, relationele en andere binaire operatorente verduidelijken.

Opties

Deze regel heeft opties gekoppeld om voorkeuren op te geven op basis van het type operator:

Zie Option-indelingvoor meer informatie over het configureren van opties.

dotnet_style_parentheses_in_arithmetic_binary_operators

Eigenschap Waarde Beschrijving
Optienaam dotnet_style_parentheses_in_arithmetic_binary_operators
optiewaarden always_for_clarity Voorkeur aan haakjes om de prioriteit van rekenkundige operatoren te verduidelijken
never_if_unnecessary Liever geen haakjes wanneer de prioriteit van rekenkundige operatoren duidelijk is
standaardoptiewaarde 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

Eigendom Waarde Beschrijving
optienaam dotnet_style_parentheses_in_relational_binary_operators
optiewaarden always_for_clarity Voorkeur aan haakjes om de prioriteit van relationele operatoren te verduidelijken
never_if_unnecessary Liever geen haakjes hebben wanneer de prioriteit van relationele operator duidelijk is
standaardoptiewaarde always_for_clarity

De relationele binaire operators zijn: >, <, <=, >=, is, as, ==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

Eigendom Waarde Beschrijving
Optienaam dotnet_style_parentheses_in_other_binary_operators
optiewaarden always_for_clarity Voorkeur aan haakjes om de prioriteit van andere binaire operatoren te verduidelijken
never_if_unnecessary Liever geen haakjes hebben wanneer andere binaire operatorprioriteit duidelijk is
standaardoptiewaarde 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
optienaam dotnet_style_parentheses_in_other_operators
optiewaarden always_for_clarity Gebruik haakjes om de volgorde van operators te verduidelijken.
never_if_unnecessary Gebruik liever geen haakjes wanneer andere operatorprioriteit duidelijk is
standaardoptiewaarde never_if_unnecessary

Deze optie is van toepassing op operators anders dan het 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 preprocessorrichtlijnen 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 ervan in op none in het configuratiebestand.

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

Als u alle regels voor de codestijl 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

Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.

Zie ook