Usare i criteri di ricerca per evitare il controllo 'is' seguito da un cast (IDE0020 e IDE0038)
Questo articolo descrive due regole correlate e IDE0020
IDE0038
.
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 i
su 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.