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:
- Operadores binarios aritméticos: dotnet_style_parentheses_in_arithmetic_binary_operators
- Operadores binarios relacionales: dotnet_style_parentheses_in_relational_binary_operators
- Otros operadores binarios: dotnet_style_parentheses_in_other_binary_operators
- Otros operadores: dotnet_style_parentheses_in_other_operators
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.