CA1000: Não é declarar membros estáticos em tipos genéricos
TypeName |
DoNotDeclareStaticMembersOnGenericTypes |
CheckId |
CA1000 |
<strong>Categoria</strong> |
Microsoft.design |
Alteração significativa |
Quebrando |
Causa
Um tipo genérico visível externamente contém um static (Shared em Visual Basic) membro.
Descrição da regra
Quando um static é chamado de membro de um tipo genérico, o argumento de tipo deve ser especificado para o tipo. Quando um membro de instância genérico que não oferece suporte à inferência de tipos é chamado, o argumento de tipo deve ser especificado para o membro. A sintaxe para especificar o argumento de tipo nesses dois casos é diferente e facilmente confuso, como as chamadas a seguintes demonstram:
' 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>();
Geralmente, as duas declarações anteriores devem ser evitadas para que o argumento de tipo não precisa ser especificado quando o membro é chamado. Isso resulta em uma sintaxe para membros de chamada no genéricos não é diferente da sintaxe para não genéricos. Para obter mais informações, consulte CA1004: Métodos genéricos devem fornecer o parâmetro de tipo.
Como corrigir violações
Para corrigir uma violação desta regra, remover o membro estático ou alterá-lo para um membro de instância.
Quando suprimir avisos
Não suprimir um aviso da regra. 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
CA1005: Evitar o excesso parâmetros em tipos genéricos
CA1010: Coleções devem implementar a interface genérica
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