Compartilhar via


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

Consulte também

Referência

Genéricos (Guia de Programação em C#)