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
Regras conexas
- CA1714: Enums de bandeiras devem ter nomes plurais
- CA1027: Marcar enums com FlagsAttribute
- CA2217: Não marcar enums com FlagsAttribute