Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.