Condividi tramite


Usare criteri di ricerca (IDE0078 e IDE0260)

Questo articolo descrive due regole correlate e IDE0078IDE0260.

Proprietà valore
ID regola IDE0078
Titolo Usa i criteri di ricerca
Categoria Style
Sottocategoria Regole della lingua (preferenze di criteri di ricerca)
Linguaggi applicabili C# 9.0+
Opzioni csharp_style_prefer_pattern_matching
Proprietà valore
ID regola IDE0260
Titolo Usa i criteri di ricerca
Categoria Style
Sottocategoria Regole della lingua (preferenze di criteri di ricerca)
Linguaggi applicabili C#
Opzioni csharp_style_pattern_matching_over_as_with_null_check

Panoramica

Questa regola di stile riguarda l'uso di costrutti di criteri di ricerca 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 null controllo.

Opzioni

Le opzioni specificano il comportamento da applicare alla regola. Per informazioni sulla configurazione delle opzioni, vedere Formato delle opzioni.

csharp_style_prefer_pattern_matching (IDE0078)

Proprietà Valore Descrizione
Nome opzione csharp_style_prefer_pattern_matching
Valori delle opzioni true Preferire l'uso di costrutti di criteri di ricerca, quando possibile
false Preferisce non usare costrutti di criteri di ricerca.
Valore dell'opzione predefinito true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Questa opzione configura anche IDE0019 regola.

Proprietà Valore Descrizione
Nome opzione csharp_style_pattern_matching_over_as_with_null_check
Valori delle opzioni true Preferisce la corrispondenza dei criteri rispetto as all'espressione con l'accesso ai membri condizionali Null.
false Disabilita la regola.
Valore dell'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à none su nel file di configurazione.

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

Per disabilitare tutte le regole in stile 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.

Vedi anche