Partilhar via


Remover supressão desnecessária (IDE0079)

Propriedade Valor
ID da regra IDE0079
Título Remover supressão desnecessária
Categoria CódigoQualidade
Subcategoria Regras de código desnecessárias (preferências de supressão)
Idiomas aplicáveis C# e Visual Basic
Opções dotnet_remove_unnecessary_suppression_exclusions

Visão geral

Esta regra sinaliza pragma desnecessários e supressões de atributos na fonte.

As supressões de origem suprimem violações das regras do compilador e do analisador em locais específicos, mas não em outras partes do código-fonte. Você geralmente os usa para suprimir falsos positivos ou violações menos importantes que você não pretende corrigir. No entanto, as supressões muitas vezes se tornam obsoletas. Isso pode acontecer se uma regra for fixada para evitar falsos positivos ou se você refatorar seu código e, ao fazer isso, tornar as supressões redundantes. Esta regra ajuda a identificar supressões redundantes, que podem ser removidas.

Observação

Mesmo que você habilitar regras de estilo de código node 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ê deseja que a regra imponha . Para obter informações sobre como configurar opções, consulte Formato de opção.

Observação

Definir uma severidade no formato option_name = value:severity não se aplica à opção dotnet_remove_unnecessary_suppression_exclusions e deve ser evitado. Em vez disso, especifique a gravidade usando uma entrada separada, por exemplo:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

Propriedade Valor Descrição
Nome da opção dotnet_remove_unnecessary_suppression_exclusions
Valores de opção Lista separada por vírgulas de IDs ou categorias de regras (prefixada com category:) Exclui supressões para as regras ou categorias 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 única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e, em seguida, reativar 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 para um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração .

[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none

Para desativar toda essa categoria de regras, defina a severidade da categoria para none no arquivo de configuração .

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Ver também