Parentesi (IDE0047 e IDE0048)

Questo articolo descrive due regole IDE0047 correlate e IDE0048.

Proprietà Valore
ID regola IDE0047
Titolo Rimuovere parentesi non necessarie
Categoria Stile
Subcategory Regole del linguaggio (preferenze parentesi)
Lingue applicabili C# e Visual Basic
Versione introdotta Visual Studio 2017
Opzioni 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
Proprietà Valore
ID regola IDE0048
Titolo Aggiungere parentesi per chiarezza
Categoria Stile
Subcategory Regole del linguaggio (preferenze parentesi)
Lingue applicabili C# e Visual Basic
Versione introdotta Visual Studio 2017
Opzioni 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

Panoramica

Le regole di stile di questa sezione riguardano le preferenze parentesi, incluso l'uso delle parentesi per chiarire la precedenza per gli operatori aritmetici, relazionali e altri operatori binari.

Opzioni

Questa regola include opzioni associate per specificare le preferenze in base al tipo di operatore:

Per informazioni sulla configurazione delle opzioni, vedere Formato opzione.

dotnet_style_parentheses_in_arithmetic_binary_operators

Proprietà Valore Descrizione
Nome opzione dotnet_style_parentheses_in_arithmetic_binary_operators
Valori di opzione always_for_clarity Preferisce parentesi per chiarire la precedenza dell'operatore aritmetico
never_if_unnecessary Preferire nessuna parentesi quando la precedenza dell'operatore aritmetico è evidente
Valore dell'opzione predefinito always_for_clarity

Gli operatori binari aritmetici sono: *+-%/>>&<<^, e .|

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

Proprietà Valore Descrizione
Nome opzione dotnet_style_parentheses_in_relational_binary_operators
Valori di opzione always_for_clarity Preferisce parentesi per chiarire la precedenza dell'operatore relazionale
never_if_unnecessary Preferisce non avere parentesi quando la precedenza dell'operatore relazionale è evidente
Valore dell'opzione predefinito always_for_clarity

Gli operatori binari relazionali sono: >>=<isas<===, e .!=

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

Proprietà Valore Descrizione
Nome opzione dotnet_style_parentheses_in_other_binary_operators
Valori di opzione always_for_clarity Preferisce parentesi per chiarire altre precedenze dell'operatore binario
never_if_unnecessary Preferisce non avere parentesi quando l'altra precedenza dell'operatore binario è evidente
Valore dell'opzione predefinito always_for_clarity

Gli altri operatori binari sono: &&, ||e ??.

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

Proprietà Valore Descrizione
Nome opzione dotnet_style_parentheses_in_other_operators
Valori di opzione always_for_clarity Preferisce parentesi per chiarire altre precedenze dell'operatore
never_if_unnecessary Preferisce non avere parentesi quando l'altra precedenza dell'operatore è evidente
Valore dell'opzione predefinito never_if_unnecessary

Questa opzione si applica agli operatori diversi dai seguenti:

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

Eliminare un avviso

Se si vuole eliminare solo una singola violazione, aggiungere direttive di preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostare la relativa gravità su none nel file di configurazione.

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

Per disabilitare tutte le regole in stile codice, impostare la gravità per la categoria Style su none nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedi anche