Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Esegui registrazioneQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare le funzionalità più recenti, gli aggiornamenti della sicurezza e il supporto tecnico.
Questo articolo descrive due regole correlate, IDE0020
e IDE0038
.
Proprietà | Valore |
---|---|
ID regola | IDE0020 |
Titolo | Utilizzare il pattern matching per evitare il controllo is seguito da un cast (con variabile) |
Categoria | Stile |
sottocategoria | Regole della lingua (preferenze di corrispondenza di modelli) |
lingue applicabili | C# |
Opzioni | csharp_style_pattern_matching_over_is_with_cast_check |
Proprietà | Valore |
---|---|
ID regola | IDE0038 |
titolo | Usare la corrispondenza di modelli per evitare il controllo is seguito da un cast (senza variabile) |
categoria | Stile |
sottocategoria | Regole della lingua (preferenze di corrispondenza di schema) |
lingue applicabili | C# |
Opzioni | csharp_style_pattern_matching_over_is_with_cast_check |
Questa regola di stile riguarda l'uso di C# criteri di ricerca, ad esempio o is int i
, su un controllo di is
seguito da un cast, ad esempio if (o is int) { ... (int)o ... }
. Abilitare IDE0020
o IDE0038
in base al fatto che l'espressione cast debba essere salvata in una variabile locale separata:
IDE0020
: L'espressione di 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'istruzione di cast non è 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.Impostare il valore dell'opzione associata per questa regola per specificare se è preferibile il pattern matching o il controllo is
seguito da un cast di tipo.
Per altre informazioni sulla configurazione delle opzioni, vedere Formato opzione.
Proprietà | Valore | Descrizione |
---|---|---|
nome opzione | stile_csharp_associazione_per_schemi_sopra_is_con_controllo_cast | |
valori di opzione | true |
Preferisci il pattern matching anziché is espressioni con casting di tipo. |
false |
Disabilita la regola. | |
valore di 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; ... }
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à su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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.
Feedback su .NET
.NET è un progetto open source. Seleziona un collegamento per fornire feedback:
Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Esegui registrazione