Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
| Propriedade | valor |
|---|---|
| ID da regra | CA1711 |
| Título | Os identificadores não devem ter sufixo incorreto |
| Categoria | Atribuição de nomes |
| A correção está provocando falhas ou não | Quebrando |
| Habilitado por padrão no .NET 10 | Não |
Motivo
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 |
|---|---|
Attribute |
System.Attribute |
Collection |
System.Collections.ICollection System.Collections.IEnumerable System.Collections.Queue System.Collections.Stack System.Collections.Generic.ICollection<T> System.Data.DataSet System.Data.DataTable |
Dictionary |
System.Collections.IDictionary System.Collections.Generic.IDictionary<TKey,TValue> |
EventArgs |
System.EventArgs |
EventHandler |
Um delegado manipulador de eventos |
Exception |
System.Exception |
Permission |
System.Security.IPermission |
Queue |
System.Collections.Queue |
Stack |
System.Collections.Stack |
Stream |
System.IO.Stream |
Além disso, os seguintes sufixos não devem ser usados:
DelegateEnum-
Exou sufixo semelhante para distingui-lo de uma versão anterior do mesmo tipo -
FlagouFlagspara tipos de enum -
Impl(utilizarCoreem vez disso) -
Newse já existir um membro com o mesmo nome, mas sem o sufixoNew
As convenções de nomenclatura fornecem uma aparência comum para bibliotecas que visam o Common Language Runtime do .NET. Essas convenções reduzem a curva de aprendizado necessária para novas bibliotecas de software e aumentam 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.
Example
class BadEmployeeCollection { } // Violates CA1711
// Good
class Employee { }
class GoodEmployeeCollection : ICollection<Employee>
{
// Implementations
}
class Employees { } // Good
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 elas se aplicam ou para todas as regras nesta categoria (de nomenclatura ) às quais elas se aplicam. 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 base de código executar essa regra, com base em sua acessibilidade, definindo a opção api_surface. 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
Observação
Substitua a parte XXXX do CAXXXX pelo ID da regra aplicável.
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