CA1714: Enums de bandeiras devem ter nomes plurais
Propriedade | valor |
---|---|
ID da regra | CA1714 |
Cargo | Enums bandeiras 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
Uma enumeração tem o System.FlagsAttribute e seu nome não termina em 's'.
Por padrão, essa regra examina apenas enumerações visíveis externamente, mas isso é configurável.
Descrição da regra
Os tipos marcados com FlagsAttribute nomes são plurais 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 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 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 plural ou remova o FlagsAttribute atributo se vários valores de enumeração não devem ser especificados simultaneamente.
Quando suprimir avisos
É seguro suprimir uma violação se o nome for uma palavra plural, mas não terminar em 's'. Por exemplo, se a enumeração de vários dias descrita anteriormente fosse chamada de 'DaysOfTheWeek', isso violaria a lógica da regra, mas não sua intenção. Tais violações devem ser suprimidas.
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 CA1714
// The code that's violating the rule is on this line.
#pragma warning restore CA1714
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1714.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