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