Partager via


CA1000 : Ne pas déclarer de membres statiques sur les types génériques

TypeName

DoNotDeclareStaticMembersOnGenericTypes

CheckId

CA1000

Catégorie

Microsoft.CSharp

Modification avec rupture

Oui

Cause

Un type générique visible de l'extérieur contient un membre static (Shared en Visual Basic).

Description de la règle

Lorsqu'un membre static d'un type générique est appelé, l'argument de type doit être spécifié pour le type. Lorsqu'un membre d'instance générique qui ne prend pas en charge l'inférence est appelé, l'argument de type doit être spécifié pour le membre. La syntaxe permettant de spécifier l'argument de type dans ces deux cas est différente et peut être facilement confondue, comme l'illustrent les appels suivants :

' Shared method in a generic type.
GenericType(Of Integer).SharedMethod()

' Generic instance method that does not support inference.
someObject.GenericMethod(Of Integer)()
// Static method in a generic type.
GenericType<int>.StaticMethod();

// Generic instance method that does not support inference.
someObject.GenericMethod<int>();

En général, les deux déclarations précédentes doivent être évitées afin que l'argument de type ne soit pas spécifié lors de l'appel au membre. On obtient une syntaxe d'appel aux membres pour les génériques qui est identique à celle pour les non-génériques. Pour plus d'informations, consultez CA1004 : Les méthodes génériques doivent fournir un paramètre de type.

Comment corriger les violations

Pour corriger une violation de cette règle, supprimez le membre statique ou remplacez-le par un membre d'instance.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. La fourniture de génériques dans une syntaxe facile à comprendre et à utiliser réduit le délai d'apprentissage nécessaire et augmente le taux d'adoption de nouvelles bibliothèques.

Règles connexes

CA1005 : Éviter les paramètres excessifs sur les types génériques

CA1010 : Les collections doivent implémenter une interface générique

CA1002 : Ne pas exposer de listes génériques

CA1006 : Ne pas imbriquer les types génériques dans les signatures de membre

CA1004 : Les méthodes génériques doivent fournir un paramètre de type

CA1003 : Utiliser les instances du gestionnaire d'événements génériques

CA1007 : Utiliser des classes génériques lorsque cela est approprié

Voir aussi

Référence

Génériques (guide de programmation C#)