Compartir a través de


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 Valor
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 de lenguaje (preferencias de coincidencia de patrones)
idiomas aplicables C#
Opciones csharp_style_pattern_matching_over_is_with_cast_check
Propiedad Valor
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 de lenguaje (preferencias de coincidencia de patrones)
idiomas aplicables C#
Opciones csharp_style_pattern_matching_over_is_with_cast_check

Visió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 debe guardarse en una variable local independiente:

  • 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 obtener más información sobre la configuración de opciones, vea Formato de opción.

csharp_style_pattern_matching_over_is_with_cast_check

Propiedad Valor Descripción
nombre de 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; ... }

Suprimir una advertencia

Si desea suprimir solo una 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 en el archivo de configuración de .

[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none

Para desactivar todas las reglas de estilo de código, configure la gravedad de la categoría Style en none en el archivo de configuración .

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

Para obtener más información, vea Cómo suprimir advertencias de análisis de código.

Consulte también