Preferências de parênteses (IDE0047 e IDE0048)
Este artigo descreve duas regras relacionadas, IDE0047
e IDE0048
.
Propriedade | Valor |
---|---|
ID da regra | IDE0047 |
Título | Remover os parênteses desnecessários |
Categoria | Estilo |
Subcategoria | Regras de linguagem (preferências de parênteses) |
Linguagens aplicáveis | C# e Visual Basic |
Versão introduzida | Visual Studio 2017 |
Opções | 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 |
Propriedade | Valor |
---|---|
ID da regra | IDE0048 |
Título | Adicionar parênteses para esclarecimento |
Categoria | Estilo |
Subcategoria | Regras de linguagem (preferências de parênteses) |
Linguagens aplicáveis | C# e Visual Basic |
Versão introduzida | Visual Studio 2017 |
Opções | 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 |
Visão geral
As regras de estilo nesta seção dizem respeito às preferências de parênteses, incluindo o uso de parênteses para esclarecer a precedência para aritméticos, relacionais e outros operadores binários.
Opções
Esta regra tem opções associadas para especificar preferências com base no tipo de operador:
- Operadores binários aritméticos - dotnet_style_parentheses_in_arithmetic_binary_operators
- Operadores binários relacionais - dotnet_style_parentheses_in_relational_binary_operators
- Outros operadores binários - dotnet_style_parentheses_in_other_binary_operators
- Outros operadores - dotnet_style_parentheses_in_other_operators
Para obter informações sobre como configurar as opções, consulte Formato da opção.
dotnet_style_parentheses_in_arithmetic_binary_operators
Propriedade | Valor | Descrição |
---|---|---|
Nome da opção | dotnet_style_parentheses_in_arithmetic_binary_operators | |
Valores da opção | always_for_clarity |
Prefira parênteses para esclarecer a precedência do operador aritmético |
never_if_unnecessary |
Prefira sem parênteses quando a precedência do operador aritmético é óbvia | |
Valor da opção padrão | always_for_clarity |
Os operadores binários aritméticos são: *
, /
, %
, +
, -
, <<
, >>
, &
, ^
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
Propriedade | Valor | Descrição |
---|---|---|
Nome da opção | dotnet_style_parentheses_in_relational_binary_operators | |
Valores da opção | always_for_clarity |
Prefira parênteses para esclarecer a precedência do operador relacional |
never_if_unnecessary |
Prefira não ter parênteses quando a precedência do operador relacional é óbvia | |
Valor da opção padrão | always_for_clarity |
Os operadores binários relacionais são: >
, <
, <=
, >=
, is
, as
, ==
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
Propriedade | Valor | Descrição |
---|---|---|
Nome da opção | dotnet_style_parentheses_in_other_binary_operators | |
Valores da opção | always_for_clarity |
Prefira parênteses para esclarecer a precedência de outros operadores binários |
never_if_unnecessary |
Prefere não ter parênteses quando a precedência de outro operador binário é óbvia | |
Valor da opção padrão | always_for_clarity |
Os outros operadores binários são: &&
, ||
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
Propriedade | Valor | Descrição |
---|---|---|
Nome da opção | dotnet_style_parentheses_in_other_operators | |
Valores da opção | always_for_clarity |
Prefira parênteses para esclarecer a precedência de outro operador |
never_if_unnecessary |
Prefere não ter parênteses quando a precedência de outro operador é óbvia | |
Valor da opção padrão | never_if_unnecessary |
Esta opção se aplica a operadores diferentes dos seguintes:
*
, /
, %
, +
, -
, <<
, >>
, &
, ^
, |
>
, <
, <=
, >=
, 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
Suprimir um aviso
Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.
#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none
Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style
como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.