Condividi tramite


Usare criteri di ricerca (IDE0078 e IDE0260)

Questo articolo descrive due regole correlate, IDE0078 e IDE0260.

Proprietà Valore
ID regola IDE0078
Titolo Usare la corrispondenza di modelli
categoria Stile
sottocategoria Regole della lingua (preferenze di corrispondenza)
lingue applicabili C# 9.0+
Opzioni csharp_style_prefer_pattern_matching
Proprietà Valore
ID regola IDE0260
Titolo Usare il riconoscimento di schemi
categoria Stile
sottocategoria Regole della lingua (preferenze di corrispondenza di modelli)
lingue applicabili C#
Opzioni csharp_style_pattern_matching_over_as_with_null_check

Panoramica

Questa regola di stile riguarda l'uso di costrutti di pattern matching in C#.

IDE0260 contrassegna in modo specifico l'uso di un'espressione as seguita da un membro letto tramite l'operatore condizionale null . Questa regola è simile a IDE0019, che contrassegna l'uso di un'espressione as seguita da un controllo null.

Opzioni

Le opzioni specificano il comportamento che si desidera che la regola imponga. Per informazioni sulla configurazione delle opzioni, vedere Formato opzione.

csharp_style_prefer_pattern_matching (IDE0078)

Proprietà Valore Descrizione
nome opzione csharp_style_prefer_pattern_matching
valori di opzione true Preferire l'uso di costrutti di corrispondenza di modelli, quando possibile
false Preferisci non usare costrutti di confronto di schemi.
valore di opzione predefinito true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Questa opzione configura anche la regola IDE0019.

Proprietà Valore Descrizione
nome opzione stile_csharp_usare_il_matching_di_modelli_al_posto_di_as_con_controllo_null
valori di opzione true Preferisce la corrispondenza dei criteri rispetto all'espressione as con accesso ai membri condizionali Null.
false Disabilita la regola.
valore di opzione predefinito true

Esempi

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 })
{
}

Eliminare un avviso

Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

#pragma warning disable IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

[*.{cs,vb}]
dotnet_diagnostic.IDE0078.severity = none
dotnet_diagnostic.IDE0260.severity = none

Per disabilitare tutte le regole di tipo codice, impostare la gravità per la categoria Style su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche