Share via


CA1716: Identificadores não devem corresponder a palavras-chave

Property Valor
ID da regra CA1716
Título Identificadores não devem corresponder a palavras-chave
Categoria Nomenclatura
Correção interruptiva ou sem interrupção Quebra
Habilitado por padrão no .NET 8 Não

Causa

O nome de um namespace, tipo ou membro virtual ou de interface corresponde a uma palavra-chave reservada em uma linguagem de programação.

Por padrão, essa regra examina apenas namespaces, tipos e membros visíveis externamente, mas você poderá configurar tipos de visibilidade e símbolos.

Descrição da regra

Identificadores para namespaces, tipos e membros virtuais e de interface não devem corresponder a palavras-chave definidas por linguagem com o Common Language Runtime de destino. Dependendo da linguagem usada e da palavra-chave, erros e ambiguidades do compilador podem dificultar o uso da biblioteca.

Essa regra verifica as palavras-chave nos seguintes idiomas:

  • Visual Basic
  • C#
  • C++/CLI

A comparação que não diferencia maiúsculas de minúsculas é usada para palavras-chave do Visual Basic e a comparação que diferencia maiúsculas de minúsculas é usada para outras linguagens.

Como corrigir violações

Selecione um nome que não apareça na lista de palavras-chave.

Quando suprimir avisos

Você pode suprimir um aviso dessa regra se tiver certeza de que o identificador não confundirá os usuários da API e se a biblioteca for utilizável em todos os idiomas disponíveis no .NET.

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 CA1716
// The code that's violating the rule is on this line.
#pragma warning restore CA1716

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.CA1716.severity = none

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

Configurar código para analisar

Use as opções a seguir para configurar em quais partes da base de código essa regra deve ser executada.

Você pode configurar essas opções 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

Tipos de símbolos analisados

É possível configurar os tipos de símbolos que serão analisados por essa regra. Os valores permitidos são:

  • Namespace
  • NamedType
  • Method
  • Property
  • Event
  • Parameter

Separe vários valores com uma vírgula (,). O valor padrão inclui todos os tipos de símbolo na lista anterior.

dotnet_code_quality.CA1716.analyzed_symbol_kinds = Namespace, NamedType, Method, Property, Event