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.