CA1714: Enumerações de sinalizador devem ter nomes no plural

Property Valor
ID da regra CA1714
Título Enumerações de sinalizador devem ter nomes no plural
Categoria Nomenclatura
Correção interruptiva ou sem interrupção Quebra
Habilitado por padrão no .NET 8 Não

Causa

Uma enumeração tem o System.FlagsAttribute e seu nome não termina com 's'.

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

Descrição da regra

Os tipos marcados com FlagsAttribute têm nomes no plural porque o atributo indica que mais de um valor pode ser especificado. Por exemplo, uma enumeração que define os dias da semana pode ser destinada a ser usada em um aplicativo em que você pode especificar vários dias. Essa enumeração deve ter o FlagsAttribute e poderá ser chamada de 'Days'. Uma enumeração semelhante que permite que apenas um único dia seja especificado não teria o atributo e poderia ser chamada de 'Day'.

As convenções de nomenclatura fornecem uma aparência comum para bibliotecas destinadas a Common Language Runtime. Isso reduz a curva de aprendizado necessária para novas bibliotecas 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 no plural ou remova o atributo FlagsAttribute se vários valores de enumeração não devam ser especificados simultaneamente.

Quando suprimir avisos

É seguro suprimir uma violação se o nome for uma palavra no plural, mas não terminar em 's'. Por exemplo, se a enumeração de vários dias descrita anteriormente fosse denominada 'DaysOfTheWeek', isso violaria a lógica da regra, mas não sua intenção. Essas violações devem ser suprimidas.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

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

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

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

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

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 saber mais, confira Opções de configuração de regra de qualidade de código.

Incluir superfícies de API específicas

É possível configurar em quais partes da base de código essa regra deverá ser executada, com base na acessibilidade. Por exemplo, para especificar que a regra deverá ser executada apenas na superfície de API não pública, adicione o seguinte par chave-valor a um arquivo .editorconfig no projeto:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Confira também