Usar coincidencia de patrones (IDE0078 e IDE0260)

En este artículo se describen dos reglas relacionadas, IDE0078 y IDE0260.

Propiedad Value
Identificador de la regla IDE0078
Título Uso de coincidencia de patrones
Categoría Estilo
Subcategoría Reglas del lenguaje (preferencias de coincidencia de patrones)
Lenguajes aplicables C# 9.0 y versiones posteriores
Opciones csharp_style_prefer_pattern_matching
Propiedad Value
Identificador de la regla IDE0260
Título Uso de coincidencia de patrones
Categoría Estilo
Subcategoría Reglas del lenguaje (preferencias de coincidencia de patrones)
Lenguajes aplicables C#
Opciones csharp_style_pattern_matching_over_as_with_null_check

Información general

Esta regla de estilo se refiere al uso de construcciones de coincidencia de patrones de C#.

IDE0260 marca específicamente el uso de una expresión as seguida de un miembro leído a través del operador condicional null. Esta regla es similar a IDE0019, que marca el uso de una expresión as seguida de una comprobación null.

Opciones

Las opciones especifican el comportamiento que se quiere que aplique la regla. Para más información sobre cómo configurar opciones, consulte Formato de opción.

csharp_style_prefer_pattern_matching (IDE0078)

Propiedad Valor Descripción
Nombre de la opción csharp_style_prefer_pattern_matching
Valores de opción true Se prefiere usar construcciones de coincidencia de patrones, siempre que sea posible
false Se prefiere no usar construcciones de coincidencia de patrones.
Valor de opción predeterminado true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Esta opción también configura la regla IDE0019.

Propiedad Valor Descripción
Nombre de la opción csharp_style_pattern_matching_over_as_with_null_check
Valores de opción true Se prefiere la coincidencia de patrones sobre la expresión as con el acceso a miembros condicionales null.
false Deshabilita la regla.
Valor de opción predeterminado true

Ejemplos

IDE0078

// csharp_style_prefer_pattern_matching = true
var x = i is default(int) or > (default(int));
var y = o is not C c;

// csharp_style_prefer_pattern_matching = false
var x = i == default || i > default(int);
var y = !(o is C c);

IDE0260

// Code with violations.
object? o = null;
if ((o as string)?.Length == 0)
{
}

// Fixed code (csharp_style_pattern_matching_over_as_with_null_check = true).
object? o = null;
if (o is string { Length: 0 })
{
}

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 IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

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.IDE0078.severity = none
dotnet_diagnostic.IDE0260.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