Condividi tramite


CA1822: Contrassegna i membri come statici

TypeName

MarkMembersAsStatic

CheckId

CA1822

Category

Microsoft.Performance

Breaking Change

Non sostanziale - Se il membro non è visibile all'esterno dell'assembly, indipendentemente dalla modifica apportata. Non sostanziale - Se si imposta semplicemente il membro su un membro di istanza con la parola chiave this.

Sostanziale - Se il membro viene configurato da membro di istanza a membro statico ed è visibile all'esterno dell'assembly.

Causa

Un membro che non accede ai dati sull'istanza non è contrassegnato come statico (Shared in Visual Basic).

Descrizione della regola

I membri che non accedono ai dati di istanza o non chiamano metodi di istanza possono essere contrassegnati come static (Shared in Visual Basic). Tramite il compilatore verranno quindi inviati siti di chiamata non virtuali a tali membri. L'emissione di siti di chiamata non virtuali impedirà un controllo in fase di runtime per ogni chiamata che accerti che il puntatore dell'oggetto corrente sia diverso da null. Si potrà così ottenere un sensibile miglioramento delle prestazioni per codici sensibili alle prestazioni. In alcuni casi, l'accesso non riuscito all'istanza dell'oggetto corrente rappresenta un problema di correzione.

Come correggere le violazioni

Contrassegnare il membro come statico (o Shared in Visual Basic) o utilizzare 'this'/'Me' nel corpo del metodo, se appropriato.

Esclusione di avvisi

L'esclusione di un avviso da questa regola è sicura per il codice fornito in precedenza per il quale la correzione rappresenterebbe una modifica sostanziale.

Regole correlate

CA1811: Evitare il codice privato non chiamato

CA1812: Evitare classi interne prive di istanze

CA1804: rimuovere locali non utilizzati