CA2259 : Vérifier que ThreadStatic est utilisé uniquement avec des champs static

Propriété Value
Identificateur de la règle CA2259
Titre Vérifier que ThreadStatic est utilisé uniquement avec des champs statiques
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut dans .NET 8 Comme avertissement

Cause

L’attribut ThreadStaticAttribute est appliqué à un champ d’instance.

Description de la règle

ThreadStaticAttribute, qui indique que la valeur d’un champ est unique pour chaque thread, affecte uniquement les champs static (Shared en Visual Basic). Quand il est appliqué aux champs d’instance, l’attribut n’a aucun impact sur le comportement.

Comment corriger une violation

Pour corriger une violation, supprimez l’attribut ThreadStaticAttribute du champ.

Exemple

L’extrait de code suivant montre une violation de CA2259 :

class C
{
    [ThreadStatic]
    public int number = 404;
}
Class C
    <ThreadStatic>
    Public number As Integer = 404
End Class

Quand supprimer les avertissements

Vous pouvez supprimer un avertissement de cette règle. Toutefois, l’attribut [ThreadStatic] est un nop et ne fait pas ce que vous vouliez qu’il fasse.

Voir aussi