CA1711: Os identificadores não devem ter sufixo incorreto
Propriedade | valor |
---|---|
ID da regra | CA1711 |
Cargo | Os identificadores não devem ter sufixo incorreto |
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
Um identificador tem um sufixo incorreto.
Por padrão, essa regra examina apenas identificadores visíveis externamente, mas isso é configurável.
Descrição da regra
Por convenção, apenas os nomes de tipos que estendem certos tipos base ou que implementam certas interfaces, ou tipos derivados desses tipos, devem terminar com sufixos reservados específicos. Outros nomes de tipo não devem usar esses sufixos reservados.
A tabela a seguir lista os sufixos reservados e os tipos básicos e interfaces aos quais eles estão associados.
Sufixo | Tipo de base/Interface |
---|---|
Atributo | System.Attribute |
Coleção | System.Collections.ICollection System.Collections.IEnumerable System.Collections.Queue System.Collections.Stack System.Collections.Generic.ICollection<T> System.Data.DataSet System.Data.DataTable |
Dicionário | System.Collections.IDictionary System.Collections.Generic.IDictionary<TKey,TValue> |
EventArgs | System.EventArgs |
Manipulador de eventos | Um delegado manipulador de eventos |
Exceção | System.Exception |
Permissão | System.Security.IPermission |
Fila | System.Collections.Queue |
Pilha | System.Collections.Stack |
Fluxo | System.IO.Stream |
Além disso, os seguintes sufixos não devem ser usados:
Delegate
Enum
Impl
(utilizarCore
em vez disso)Ex
ou sufixo semelhante para distingui-lo de uma versão anterior do mesmo tipoFlag
ouFlags
para tipos de enum
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. Para obter mais informações, consulte Diretrizes de nomenclatura: classes, estruturas e interfaces.
Como corrigir violações
Remova o sufixo do nome do tipo.
Quando suprimir avisos
Não suprima um aviso desta regra, a menos que o sufixo tenha um significado inequívoco no domínio do aplicativo.
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 CA1711
// The code that's violating the rule is on this line.
#pragma warning restore CA1711
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1711.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.
Configurar código para análise
Use as opções a seguir para configurar em quais partes da base de código executar essa regra.
Você pode configurar essas opções 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
Permitir sufixos
Você pode configurar uma lista de sufixos permitidos, com cada sufixo separado pelo caractere pipe ("|"). Por exemplo, para especificar que a regra não deve ser executada nos sufixos Flag e Flags, adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:
dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags