CA1822: Contrassegna i membri come statici
Proprietà | valore |
---|---|
ID regola | CA1822 |
Title | Contrassegna i membri come statici |
Categoria | Prestazioni |
La correzione causa un'interruzione o meno | Non di rilievo: se il membro non è visibile all'esterno dell'assembly, indipendentemente dalla modifica apportata. Non di rilievo: se si modifica semplicemente il membro in un membro dell'istanza con la this parola chiave .Interruzione: se si modifica il membro da un membro dell'istanza a un membro statico ed è visibile all'esterno dell'assembly. |
Abilitato per impostazione predefinita in .NET 9 | Come suggerimento |
Causa
Un membro che non accede ai dati dell'istanza non è contrassegnato come statico (Condiviso in Visual Basic).
Descrizione regola
I membri che non accedono ai dati dell'istanza o chiamano i metodi dell'istanza possono essere contrassegnati come statici (Condivisi in Visual Basic). Tramite il compilatore verranno quindi inviati siti di chiamata non virtuali a tali membri. L'emissione di siti di chiamate non virtuali impedirà un controllo in fase di esecuzione per ogni chiamata che assicura che il puntatore dell'oggetto corrente non sia null. In questo modo è possibile ottenere un miglioramento delle prestazioni misurabile per il codice sensibile alle prestazioni. In alcuni casi, l'errore di accesso all'istanza dell'oggetto corrente rappresenta un problema di correttezza.
Come correggere le violazioni
Contrassegnare il membro come statico (o Condiviso in Visual Basic) o usare 'this'/'Me' nel corpo del metodo, se appropriato.
Quando eliminare gli avvisi
È possibile eliminare un avviso da questa regola per il codice fornito in precedenza per il quale la correzione sarebbe una modifica che causa un'interruzione.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA1822
// The code that's violating the rule is on this line.
#pragma warning restore CA1822
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.CA1822.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Configurare il codice da analizzare
Usare l'opzione seguente per configurare le parti della codebase in cui eseguire questa regola.
È possibile configurare questa opzione solo per questa regola, per tutte le regole a cui si applica o per tutte le regole di questa categoria (prestazioni) a cui si applica. Per altre informazioni, vedere Opzioni di configurazione delle regole di qualità del codice.
Includere superfici API specifiche
È possibile configurare le parti della codebase in modo da eseguire questa regola in base all'accessibilità. Ad esempio, per specificare che la regola deve essere eseguita solo sulla superficie dell'API non pubblica, aggiungere la coppia chiave-valore seguente a un file con estensione editorconfig nel progetto:
dotnet_code_quality.CAXXXX.api_surface = private, internal