Compartilhar via


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

Consulte também

Referência

Generics (C# Programming Guide)