Uso de la coincidencia de patrones para evitar la comprobación de "is" seguida de una conversión (IDE0020 e IDE0038)
En este artículo se describen dos reglas relacionadas, IDE0020
y IDE0038
.
Propiedad | Value |
---|---|
Identificador de la regla | IDE0020 |
Título | Uso de la coincidencia de patrones para evitar la comprobación de is seguida de una conversión (con variable) |
Categoría | Estilo |
Subcategoría | Reglas del lenguaje (preferencias de coincidencia de patrones) |
Lenguajes aplicables | C# |
Opciones | csharp_style_pattern_matching_over_is_with_cast_check |
Propiedad | Value |
---|---|
Identificador de la regla | IDE0038 |
Título | Uso de la coincidencia de patrones para evitar la comprobación de is seguida de una conversión (sin variable) |
Categoría | Estilo |
Subcategoría | Reglas del lenguaje (preferencias de coincidencia de patrones) |
Lenguajes aplicables | C# |
Opciones | csharp_style_pattern_matching_over_is_with_cast_check |
Información general
Esta regla de estilo se refiere al uso de la coincidencia de patrones de C#, por ejemplo, o is int i
, en una comprobación de is
seguida de una conversión, por ejemplo, if (o is int) { ... (int)o ... }
. Habilite IDE0020
o IDE0038
en función de si la expresión de conversión se debe guardar en una variable local independiente o no:
IDE0020
: La expresión de conversión se guarda en una variable local. Por ejemplo,if (o is int) { var i = (int)o; }
guarda el resultado de(int)o
en una variable local.IDE0038
: La expresión de conversión no se guarda en una variable local. Por ejemplo,if (o is int) { if ((int)o == 1) { ... } }
no guarda el resultado de(int)o
en una variable local.
Opciones
Establezca el valor de la opción asociada a esta regla para especificar si se prefiere la coincidencia de patrones o la comprobación de is
seguida de una conversión de tipos.
Para más información sobre la configuración de las opciones, consulte Formato de las opciones.
csharp_style_pattern_matching_over_is_with_cast_check
Propiedad | Valor | Descripción |
---|---|---|
Nombre de la opción | csharp_style_pattern_matching_over_is_with_cast_check | |
Valores de opción | true |
Prefiere la coincidencia de patrones en lugar de expresiones is con conversiones de tipo. |
false |
Deshabilita la regla. | |
Valor de opción predeterminado | true |
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}
// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }
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 IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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.