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

A regra IDE0079 sinaliza apenas violações em arquivos abertos no editor do Visual Studio. Ela não está disponível para builds de linha de comando.

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.

Confira também