CA1717: Somente enums FlagsAttribute devem ter nomes plurais

Propriedade valor
ID da regra CA1717
Cargo Apenas enums FlagsAttribute devem ter nomes plurais
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

O nome de uma enumeração termina em uma palavra plural e a enumeração não é marcada com o System.FlagsAttribute atributo.

Por padrão, essa regra examina apenas enumerações visíveis externamente, mas isso é configurável.

Descrição da regra

As convenções de nomenclatura determinam que um nome plural para uma enumeração indica que mais de um valor da enumeração pode ser especificado simultaneamente. O FlagsAttribute diz aos compiladores que a enumeração deve ser tratada como um campo bit que permite operações bit a bit na enumeração.

Se apenas um valor de uma enumeração puder ser especificado de cada vez, o nome da enumeração deverá ser uma palavra singular. Por exemplo, uma enumeração que define os dias da semana pode ser destinada ao uso em um aplicativo onde você pode especificar vários dias. Esta enumeração deve ter o FlagsAttribute e pode ser chamado de 'Dias'. Uma enumeração semelhante que permite que apenas um único dia seja especificado não teria o atributo e poderia ser chamada de 'Dia'.

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

Torne o nome da enumeração uma palavra singular ou adicione o FlagsAttributearquivo .

Quando suprimir avisos

É seguro suprimir um aviso da regra se o nome terminar em uma palavra singular.

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.

#pragma warning disable CA1717
// The code that's violating the rule is on this line.
#pragma warning restore CA1717

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.CA1717.severity = none

Para obter mais informações, consulte Como suprimir avisos de análise de código.

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.

Incluir superfícies de API específicas

Você pode configurar em quais partes da sua base de código executar essa regra, com base em sua acessibilidade. Por exemplo, para especificar que a regra deve ser executada somente na superfície de API não pública, adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Consulte também