Partilhar via


CA1720: Os identificadores não devem conter nomes de tipo

Propriedade valor
ID da regra CA1720
Cargo 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 8 Não

Causa

O nome de um parâmetro em um membro contém um nome de tipo de dados.

-ou-

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 do tipo C# , use o nome intdo 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:

  • Objeto
  • Booleano
  • 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