Préférences de parenthèses (IDE0047 et IDE0048)

Cet article décrit deux règles associées, IDE0047 et IDE0048.

Propriété Value
Identificateur de la règle IDE0047
Titre Supprimer les parenthèses inutiles
Catégorie Style
Sous-catégorie Règles de langage (préférences de parenthèses)
Langages applicables C# et Visual Basic
Version introduite Visual Studio 2017
Options 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
Propriété Value
Identificateur de la règle IDE0048
Titre Ajouter des parenthèses à des fins de clarté
Catégorie Style
Sous-catégorie Règles de langage (préférences de parenthèses)
Langages applicables C# et Visual Basic
Version introduite Visual Studio 2017
Options 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

Vue d’ensemble

Les règles de style de cette section concernent les préférences de parenthèses, notamment l’utilisation de parenthèses pour clarifier la précédence d’opérateurs arithmétiques, d’opérateurs relationnels et d’autres opérateurs binaires.

Options

Cette règle comporte des options associées pour spécifier des préférences en fonction du type d’opérateur :

Pour plus d’informations sur la configuration des options, consultez Format d’option.

dotnet_style_parentheses_in_arithmetic_binary_operators

Propriété Valeur Description
Nom d'option dotnet_style_parentheses_in_arithmetic_binary_operators
Valeurs d’option always_for_clarity Préférer les parenthèses pour clarifier la précédence des opérateurs arithmétiques
never_if_unnecessary Éviter les parenthèses lorsque la précédence des opérateurs arithmétiques est évidente
Valeur d’option par défaut always_for_clarity

Les opérateurs binaires arithmétiques sont les suivants : *, /, %, +, -, <<, >>, &, ^ et |.

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

Propriété Valeur Description
Nom d'option dotnet_style_parentheses_in_relational_binary_operators
Valeurs d’option always_for_clarity Préférer les parenthèses pour clarifier la précédence des opérateurs relationnels
never_if_unnecessary Éviter les parenthèses lorsque la précédence des opérateurs relationnels est évidente
Valeur d’option par défaut always_for_clarity

Les opérateurs binaires relationnels sont les suivants : >, <, <=, >=, is, as, == et !=.

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

Propriété Valeur Description
Nom d'option dotnet_style_parentheses_in_other_binary_operators
Valeurs d’option always_for_clarity Préférer les parenthèses pour clarifier la précédence des autres opérateurs binaires
never_if_unnecessary Éviter les parenthèses lorsque la précédence des autres opérateurs binaires est évidente
Valeur d’option par défaut always_for_clarity

Les autres opérateurs binaires sont les suivants : &&, ||et ??.

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

Propriété Valeur Description
Nom d'option dotnet_style_parentheses_in_other_operators
Valeurs d’option always_for_clarity Préférer les parenthèses pour clarifier la précédence d’autres opérateurs
never_if_unnecessary Éviter les parenthèses lorsque la précédence d’autres opérateurs est évidente
Valeur d’option par défaut never_if_unnecessary

Cette option s’applique aux opérateurs autres que les opérateurs suivants :

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

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

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

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour désactiver toutes les règles de style de code, définissez la gravité de la catégorie Style sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi