Share via


CA1712: Não prefixar valores de enumeração com um nome de tipo

Property Valor
ID da regra CA1712
Título Não prefixar valores de enumeração com um nome de tipo
Categoria Nomenclatura
Correção interruptiva ou sem interrupção Quebra
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 de enumeração não são prefixados com o nome do tipo porque espera-se que as informações de tipo sejam fornecidas pelas ferramentas de desenvolvimento.

As convenções de nomenclatura fornecem uma aparência comum para bibliotecas destinadas a 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 de nome de tipo do membro de enumeração.

Quando suprimir avisos

Não suprima um aviso nessa 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

Configurar código para analisar

Use a opção a seguir para configurar em quais partes da base de código essa regra deve ser executada.

Você pode configurar essa opção apenas para essa regra, para todas as regras às quais ela se aplica ou para todas as regras nessa categoria (Nomenclatura) às quais ela se aplica. Para mais informações, confira opções de configuração de regra de qualidade de código.

Gatilho de prefixo de valores de enumeração

Você pode configurar o número de valores de enumeração necessários para disparar a regra. Por exemplo, para especificar que a regra será disparada se um ou mais valores de enumeração começarem com o nome do tipo enumerado, adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:

dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue

Exemplos:

Valor de opção Resumo
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue A regra será disparada se qualquer um dos valores de enumeração começar com o nome do tipo enumerado.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues A regra será disparada se todos os valores de enumeração começarem com o nome do tipo enumerado.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic A regra será disparada usando a heurística padrão, ou seja, quando pelo menos 75% dos valores de enumeração começam com o nome do tipo enumerado.

Confira também