Remover a supressão desnecessária (IDE0079)
Propriedade | Valor |
---|---|
ID da regra | IDE0079 |
Título | Remover a supressão desnecessária |
Categoria | CodeQuality |
Subcategoria | Regras de código desnecessárias (preferências de supressão) |
Linguagens aplicáveis | C# e Visual Basic |
Opções | dotnet_remove_unnecessary_suppression_exclusions |
Visão geral
Essa regra sinaliza supressões desnecessárias de pragma e atributo SuppressMessageAttribute na origem.
As supressões de origem suprimem violações de regras do compilador e do analisador em locais específicos, mas não em outras partes do código-fonte. Geralmente, você os usa para suprimir falsos positivos ou violações menos importantes que não pretende corrigir. No entanto, as supressões geralmente se tornam obsoletas. Isso poderá acontecer se uma regra for corrigida para evitar falsos positivos ou você refatorar seu código e, ao fazer isso, tornar as supressões redundantes. Essa regra ajuda a identificar as supressões redundantes, que poderão ser removidas.
Observação
Mesmo se você habilitar regras de estilo de código na compilação, essa regra não estará habilitada. Ele só aparece no editor do Visual Studio.
Exemplo
using System.Diagnostics.CodeAnalysis;
class C1
{
// Necessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UnusedMethod() => 0;
#pragma warning restore IDE0051
// IDE0079: Unnecessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UsedMethod() => 0;
#pragma warning restore IDE0051
public int PublicMethod() => UsedMethod();
}
class C2
{
// Necessary SuppressMessage attribute suppression
[SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
private int _unusedField;
// IDE0079: Unnecessary SuppressMessage attribute suppression
[SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
private int _usedField;
public int PublicMethod2() => _usedField;
}
Opções
As opções especificam o comportamento que você quer que a regra imponha. Para obter informações sobre como configurar as opções, consulte Formato da opção.
dotnet_remove_unnecessary_suppression_exclusions
Propriedade | Valor | Descrição |
---|---|---|
Nome da Opção | dotnet_remove_unnecessary_suppression_exclusions | |
Valores da opção | , lista separada de categorias ou IDs de regra (prefixado com category: ) |
Exclui supressões para as regras listadas |
all |
Desabilita a regra (todas as IDs de regra excluídas) | |
none |
Habilita a regra para todas as regras (sem exclusões) | |
Valor da opção padrão | none |
using System.Diagnostics.CodeAnalysis;
class C1
{
// 'dotnet_remove_unnecessary_suppression_exclusions = IDE0051'
// Unnecessary pragma suppression, but not flagged by IDE0079
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UsedMethod() => 0;
#pragma warning restore IDE0051
public int PublicMethod() => UsedMethod();
}
Suprimir um aviso
Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
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.IDE0079.severity = none
Para desabilitar toda essa categoria de regras, defina a gravidade da categoria como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.