Condividi tramite


Usare i criteri di ricerca per evitare il controllo 'is' seguito da un cast (IDE0020 e IDE0038)

Questo articolo descrive due regole correlate e IDE0020IDE0038.

Proprietà valore
ID regola IDE0020
Title Usare criteri di ricerca per evitare is il controllo seguito da un cast (con variabile)
Categoria Style
Sottocategoria Regole della lingua (preferenze di criteri di ricerca)
Linguaggi applicabili C#
Opzioni csharp_style_pattern_matching_over_is_with_cast_check
Proprietà valore
ID regola IDE0038
Title Usare criteri di ricerca per evitare is il controllo seguito da un cast (senza variabile)
Categoria Style
Sottocategoria Regole della lingua (preferenze di criteri di ricerca)
Linguaggi applicabili C#
Opzioni csharp_style_pattern_matching_over_is_with_cast_check

Panoramica

Questa regola di stile riguarda l'uso dei criteri di ricerca C#, ad esempio , o is int isu un is controllo seguito da un cast, ad esempio if (o is int) { ... (int)o ... }. IDE0020 Abilitare o IDE0038 in base al fatto che l'espressione cast debba essere salvata in una variabile locale separata:

  • IDE0020: l'espressione cast viene salvata in una variabile locale. Ad esempio, if (o is int) { var i = (int)o; } salva il risultato di (int)o in una variabile locale.
  • IDE0038: l'espressione cast non viene salvata in una variabile locale. Ad esempio, if (o is int) { if ((int)o == 1) { ... } } non salva il risultato di (int)o in una variabile locale.

Opzioni

Impostare il valore dell'opzione associata per questa regola per specificare se è preferibile scegliere criteri di ricerca o is controllo seguiti da un cast di tipo.

Per altre informazioni sulla configurazione delle opzioni, vedere Formato delle opzioni.

csharp_style_pattern_matching_over_is_with_cast_check

Proprietà valore Descrizione
Nome opzione csharp_style_pattern_matching_over_is_with_cast_check
Valori delle opzioni true Preferisce i criteri di ricerca invece delle espressioni is con cast dei tipi.
false Disabilita la regola.
Valore dell'opzione predefinito 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; ... }

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

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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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