Partager via


CA1822 : Marquez les membres comme static

TypeName

MarkMembersAsStatic

CheckId

CA1822

Catégorie

Microsoft.Performance

Modification avec rupture

Sans rupture - Si le membre n'est pas visible à l'extérieur de l'assembly, indépendamment de la modification effectuée. Sans rupture - Si vous remplacez simplement le membre par un membre d'instance avec le mot clé this.

Avec rupture - Si vous remplacez un membre d'instance par un membre statique et qu'il est visible à l'extérieur de l'assembly.

Cause

Un membre qui n'accède pas aux données d'instance n'est pas marqué comme static (Shared en Visual Basic).

Description de la règle

Les membres qui n'accèdent pas aux données d'instance ou n'appellent pas de méthodes d'instance peuvent être marquées comme static (Shared en Visual Basic). Une fois que les méthodes ont été marquées comme static, le compilateur émet des sites d'appel non virtuels vers ces membres. L'émission de sites d'appel non virtuels empêche la vérification de chaque appel au moment de l'exécution, consistant à s'assurer que le pointeur d'objet actuel n'est pas Null. Cette opération se traduit par un gain de performances mesurable pour le code dépendant des performances. Dans certains cas, l'échec de l'accès à l'instance d'objet actuelle représente un problème d'exactitude.

Comment corriger les violations

Marquez le membre comme static (ou Shared en Visual Basic) ou utilisez 'this'/'Me' dans le corps de la méthode, si nécessaire.

Quand supprimer les avertissements

Il est possible de supprimer sans risque un avertissement de cette règle dans le cas d'un code précédemment livré pour lequel le correctif constituerait une modification avec rupture.

Règles connexes

CA1811 : Évitez le recours à du code privé non appelé

CA1812 : Évitez les classes internes non instanciées

CA1804 : Supprimez les variables locales inutilisées