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 membro de um tipo genérico é chamado, 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>();

Em geral, ambas as 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, remova 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 excessivos 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 membros

CA1004: Métodos genéricos devem fornecer o parâmetro de tipo

CA1003: Usar instâncias de manipulador de evento genérico

CA1007: Use genéricos onde for apropriado

Consulte também

Referência

Genéricos (guia de programação do C#)