CA1005: Evitar o excesso parâmetros em tipos genéricos
TypeName |
AvoidExcessiveParametersOnGenericTypes |
CheckId |
CA1005 |
<strong>Categoria</strong> |
Microsoft.design |
Alteração significativa |
Quebrando |
Causa
Um tipo genérico visível externamente tem mais de dois parâmetros de tipo.
Descrição da regra
Quanto mais digite os parâmetros que contém um tipo genérico, mais difícil é saber e lembre-se de que cada tipo de parâmetro representa. É geralmente evidente com o parâmetro de um tipo, como em List<T>e em determinados casos com dois parâmetros de tipo, como em Dictionary<TKey, TValue>. Se existirem em mais de dois parâmetros de tipo, a dificuldade torna-se muito grande para a maioria dos usuários (por exemplo, TooManyTypeParameters<T, K, V> em C# ou TooManyTypeParameters(Of T, K, V) na Visual Basic).
Como corrigir violações
Para corrigir uma violação desta regra, altere o design para usar não mais que dois parâmetros de tipo.
Quando suprimir avisos
Não suprimir um aviso da regra, a menos que o design absolutamente requer mais de dois parâmetros de tipo. Fornecer uma sintaxe fácil de entender e usar os genéricos reduz o tempo que é necessário para aprender e aumenta a taxa de adoção de novas bibliotecas.
Regras relacionadas
CA1010: Coleções devem implementar a interface genérica
CA1000: Não é declarar membros estáticos em tipos genéricos
CA1002: Não expõem listas genéricas
CA1006: Não se aninham tipos genéricos em assinaturas de membro
CA1004: Métodos genéricos devem fornecer o parâmetro de tipo
CA1003: Usar instâncias do manipulador de evento genérico
CA1007: Use genéricos onde for apropriado