CA1000: não declarar membros estáticos em tipos genéricos
TypeName |
DoNotDeclareStaticMembersOnGenericTypes |
CheckId |
CA1000 |
Categoria |
Microsoft.Design |
Alteração Significativa |
Quebra |
Causa
Um tipo genérico externamente visível contém um membro de static (Shared no Visual Basic).
Descrição da Regra
Quando um membro de static de um tipo genérico é chamado, o argumento de tipo deve ser especificado para o tipo.Quando um membro da instância que não oferece suporte a inferência é chamado, o argumento de tipo deve ser especificado para o membro.A sintaxe para especificar o argumento de tipo nesses dois casos é diferente e ofuscada facilmente, chamadas demonstram como os seguintes:
' 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>();
Em geral, ambas as instruções anteriores devem ser evitadas de forma que o argumento de tipo não tem que ser especificado quando o membro for chamado.Isso resulta em uma sintaxe para chamar membros em produtos genéricas que não é diferente da sintaxe para produtos não genéricas.Para obter mais informações, consulte CA1004: os métodos genéricos devem fornecer o parâmetro de tipo.
Como Corrigir Violações
Para corrigir uma violação desta regra, remova o membro estático ou altere-o para um membro da instância.
Quando Suprimir Alertas
Não elimine um alerta desta regra.Fornecer produtos genéricas em uma sintaxe que seja fácil de entender e em uso reduz o tempo necessário para conhecer e aumenta a taxa de adoção de novas bibliotecas.
Regras Relacionadas
CA1005: evitar parâmetros excessivos em tipos genéricos
CA1010: as coleções devem implementar a interface genérica
CA1002: não expor listas genéricas
CA1006: não aninhar tipos genéricos em assinaturas de membro
CA1004: os métodos genéricos devem fornecer o parâmetro de tipo
CA1003: usar instâncias do manipulador de eventos genéricos
CA1007: usar genéricos quando apropriado