CA1712: Não prefixar valores de enum com nome de tipo
Propriedade | valor |
---|---|
ID da regra | CA1712 |
Cargo | Não prefixar valores de enum com o nome do tipo |
Categoria | Atribuição de nomes |
A correção está quebrando ou não quebrando | Quebrando |
Habilitado por padrão no .NET 8 | Não |
Causa
Uma enumeração contém um membro cujo nome começa com o nome do tipo da enumeração.
Descrição da regra
Os nomes dos membros da enumeração não são prefixados com o nome do tipo porque as informações de tipo devem ser fornecidas pelas ferramentas de desenvolvimento.
As convenções de nomenclatura fornecem uma aparência comum para bibliotecas que visam o Common Language Runtime. Isso reduz o tempo necessário para aprender uma nova biblioteca de software e aumenta a confiança do cliente de que a biblioteca foi desenvolvida por alguém com experiência no desenvolvimento de código gerenciado.
Como corrigir violações
Para corrigir uma violação dessa regra, remova o prefixo do nome do tipo do membro da enumeração.
Quando suprimir avisos
Não suprima um aviso desta regra.
Exemplo
O exemplo a seguir mostra uma enumeração nomeada incorretamente seguida pela versão corrigida.
public enum DigitalImageMode
{
DigitalImageModeBitmap = 0,
DigitalImageModeGrayscale = 1,
DigitalImageModeIndexed = 2,
DigitalImageModeRGB = 3
}
public enum DigitalImageMode2
{
Bitmap = 0,
Grayscale = 1,
Indexed = 2,
RGB = 3
}
Imports System
Namespace ca1712
Enum DigitalImageMode
DigitalImageModeBitmap = 0
DigitalImageModeGrayscale = 1
DigitalImageModeIndexed = 2
DigitalImageModeRGB = 3
End Enum
Enum DigitalImageMode2
Bitmap = 0
Grayscale = 1
Indexed = 2
RGB = 3
End Enum
End Namespace
Regras conexas
- CA1711: Os identificadores não devem ter sufixo incorreto
- CA1027: Marcar enums com FlagsAttribute
- CA2217: Não marcar enums com FlagsAttribute
Configurar código para análise
Use a opção a seguir para configurar em quais partes da sua base de código executar essa regra.
Você pode configurar essa opção apenas para esta regra, para todas as regras às quais ela se aplica ou para todas as regras nesta categoria (Nomenclatura) às quais ela se aplica. Para obter mais informações, consulte Opções de configuração da regra de qualidade de código.
Gatilho de prefixo de valores de enum
Você pode configurar o número de valores de enumeração necessários para acionar a regra. Por exemplo, para especificar que a regra será acionada se um ou mais valores de enum começarem com o nome do tipo de enum, adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue
Exemplos:
Valor da opção | Resumo |
---|---|
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue |
A regra é acionada se qualquer um dos valores de enum começar com o nome do tipo de enum. |
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues |
A regra será acionada se todos os valores de enum começarem com o nome do tipo de enum. |
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic |
A regra é acionada usando a heurística padrão, ou seja, quando pelo menos 75% dos valores de enum começam com o nome do tipo de eno. |