Preferencias de paréntesis (IDE0047 e IDE0048)

En este artículo se describen dos reglas relacionadas, IDE0047 y IDE0048.

Propiedad Value
Identificador de la regla IDE0047
Título Eliminación de paréntesis innecesarios
Categoría Estilo
Subcategoría Reglas del lenguaje (preferencias de paréntesis)
Lenguajes aplicables C# y Visual Basic
Versión introducida Visual Studio 2017
Opciones 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
Propiedad Value
Identificador de la regla IDE0048
Título Adición de paréntesis para claridad
Categoría Estilo
Subcategoría Reglas del lenguaje (preferencias de paréntesis)
Lenguajes aplicables C# y Visual Basic
Versión introducida Visual Studio 2017
Opciones 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

Información general

Las reglas de estilo de esta sección se refieren a las preferencias de paréntesis, incluido el uso de paréntesis para aclarar la prioridad de los operadores aritméticos, relacionales y otros operadores binarios.

Opciones

Esta regla tiene opciones asociadas para especificar preferencias basadas en el tipo de operador:

Para información sobre cómo configurar opciones, consulte Formato de opción.

dotnet_style_parentheses_in_arithmetic_binary_operators

Propiedad Value Descripción
Nombre de la opción dotnet_style_parentheses_in_arithmetic_binary_operators
Valores de opción always_for_clarity Se prefieren paréntesis para aclarar la prioridad de los operadores aritméticos
never_if_unnecessary Se prefiere no tener paréntesis cuando la prioridad de los operadores aritméticos es obvia.
Valor de opción predeterminado always_for_clarity

Los operadores binarios aritméticos son: *, /, %, +, -, <<, >>, &, ^ y |.

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

Propiedad Value Descripción
Nombre de la opción dotnet_style_parentheses_in_relational_binary_operators
Valores de opción always_for_clarity Se prefieren paréntesis para aclarar la prioridad de los operadores relacionales.
never_if_unnecessary Se prefiere no tener paréntesis cuando la prioridad de los operadores relacionales es obvia.
Valor de opción predeterminado always_for_clarity

Los operadores binarios relacionales son: >, <, <=, >=, is, as, == y !=.

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

Propiedad Value Descripción
Nombre de la opción dotnet_style_parentheses_in_other_binary_operators
Valores de opción always_for_clarity Se prefieren paréntesis para aclarar la prioridad de otros operadores binarios.
never_if_unnecessary Se prefiere no tener paréntesis cuando la prioridad de otros operadores binarios es obvia.
Valor de opción predeterminado always_for_clarity

Los otros operadores binarios son: &&, || y ??.

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

Propiedad Value Descripción
Nombre de la opción dotnet_style_parentheses_in_other_operators
Valores de opción always_for_clarity Se prefieren paréntesis para aclarar la prioridad de otros operadores.
never_if_unnecessary Se prefiere no tener paréntesis cuando la prioridad de otros operadores es obvia.
Valor de opción predeterminado never_if_unnecessary

Esta opción se aplica a operadores distintos de los siguientes:

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

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

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

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none del archivo de configuración.

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

Para deshabilitar todas las reglas de estilo del código, establezca la gravedad de la categoría Style en none del archivo de configuración.

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

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.

Consulte también