Partilhar via


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 (utilizar Core em vez disso)
  • Ex ou sufixo semelhante para distingui-lo de uma versão anterior do mesmo tipo
  • Flag ou Flags 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

Consulte também