CA1005 : Éviter les paramètres excessifs sur les types génériques
TypeName |
AvoidExcessiveParametersOnGenericTypes |
CheckId |
CA1005 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Oui |
Cause
Un type générique visible de l'extérieur contient plus de deux paramètres de type.
Description de la règle
Plus un type générique contient de paramètres de type, plus il est difficile de déterminer et de mémoriser la représentation de chaque paramètre de type. Cela est généralement évident avec un paramètre de type, comme dans List<T>, et dans certains cas avec deux paramètres de type, comme dans Dictionary<TKey, TValue>. Si plus de deux paramètres de type existent, la difficulté devient trop grande pour la plupart des utilisateurs (par exemple, TooManyTypeParameters<T, K, V> en C# ou TooManyTypeParameters(Of T, K, V) dans Visual Basic).
Comment corriger les violations
Pour corriger une violation de cette règle, modifiez le design afin d'utiliser deux paramètres de type au maximum.
Quand supprimer les avertissements
Ne supprimez pas d'avertissement de cette règle sauf si le design nécessite absolument plus de deux paramètres de type. 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
CA1010 : Les collections doivent implémenter une interface générique
CA1000 : Ne pas déclarer de membres statiques sur les types génériques
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é