CA1720: Os identificadores não devem conter nomes de tipo
Property | valor |
---|---|
ID da regra | CA1720 |
Título | Os identificadores não devem conter nomes de tipo |
Categoria | Atribuição de nomes |
A correção está quebrando ou não quebrando | Quebrando |
Habilitado por padrão no .NET 9 | Não |
Motivo
O nome de um parâmetro em um membro contém um nome de tipo de dados.
-or-
O nome de um membro contém um nome de tipo de dados específico do idioma.
Por padrão, essa regra só examina membros visíveis externamente, mas isso é configurável.
Descrição da regra
Nomes de parâmetros e membros são mais bem usados para comunicar seu significado do que para descrever seu tipo, o que se espera que seja fornecido por ferramentas de desenvolvimento. Para nomes de membros, se for necessário usar um nome de tipo de dados, use um nome independente do idioma em vez de um nome específico do idioma. Por exemplo, em vez do nome int
do tipo C# , use o nome do tipo de dados independente do idioma, Int32
.
Cada token discreto no nome do parâmetro ou membro é verificado em relação aos seguintes nomes de tipo de dados específicos do idioma de maneira que não diferencia maiúsculas de minúsculas:
- Bool
- WChar
- Int8
- UInt8
- Curto
- UShort
- Int
- UInt
- Número inteiro
- UInteger
- Longo
- ULong
- Não assinado
- Assinatura
- Float
- Flutuação32
- Flutuador64
Além disso, os nomes de um parâmetro também são verificados em relação aos seguintes nomes de tipos de dados independentes do idioma de maneira que não diferencia maiúsculas de minúsculas:
- Object
- Boolean
- Char
- String
- SByte
- Byte
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Ponteiro
- UInptr
- UPtr
- UPointer
- Única
- Duplo
- Decimal
- GUID
Como corrigir violações
Se disparado contra um parâmetro:
Substitua o identificador de tipo de dados no nome do parâmetro por um termo que descreva melhor seu significado ou por um termo mais genérico, como 'valor'.
Se for demitido contra um membro:
Substitua o identificador de tipo de dados específico do idioma no nome do membro por um termo que descreva melhor seu significado, um equivalente independente do idioma ou um termo mais genérico, como "valor".
Quando suprimir avisos
O uso ocasional de parâmetros baseados no tipo e nomes de membros pode ser apropriado. No entanto, para novos desenvolvimentos, não ocorrem cenários conhecidos em que você deve suprimir um aviso dessa regra. Para bibliotecas que foram enviadas anteriormente, talvez seja necessário suprimir um aviso dessa regra.
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 CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1720.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