Condividi tramite


Rimuovere l'eliminazione non necessaria (IDE0079)

Proprietà valore
ID regola IDE0079
Title Rimuovere l'eliminazione non necessaria
Categoria CodeQuality
Sottocategoria Regole di codice non necessarie (preferenze di eliminazione)
Linguaggi applicabili C# r Visual Basic
Opzioni dotnet_remove_unnecessary_suppression_exclusions

Panoramica

Questa regola contrassegna le eliminazioni di pragma e SuppressMessageAttribute attributi non necessarie nell'origine.

Le eliminazioni di origine eliminano le violazioni delle regole del compilatore e dell'analizzatore in posizioni specifiche, ma non in altre parti del codice sorgente. In genere si usano per eliminare falsi positivi o violazioni meno importanti che non si intende correggere. Tuttavia, le eliminazioni spesso diventano obsoleti. Questa situazione può verificarsi se una regola è fissa per impedire falsi positivi o effettuare il refactoring del codice e, in questo modo, eseguire il rendering delle eliminazioni ridondanti. Questa regola consente di identificare le eliminazioni ridondanti, che possono essere rimosse.

Nota

Anche se si abilitano le regole di stile del codice per la compilazione, questa regola non è abilitata. Viene visualizzata solo nell'editor di Visual Studio.

Esempio

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;
}

Opzioni

Le opzioni specificano il comportamento da applicare alla regola. Per informazioni sulla configurazione delle opzioni, vedere Formato delle opzioni.

dotnet_remove_unnecessary_suppression_exclusions

Proprietà valore Descrizione
Nome opzione dotnet_remove_unnecessary_suppression_exclusions
Valori delle opzioni , elenco separato di ID regola o categorie (preceduto da category:) Esclude le eliminazioni per le regole elencate
all Disabilita la regola (tutti gli ID regola esclusi)
none Abilita la regola per tutte le regole (nessuna esclusione)
Valore dell'opzione predefinito 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();
}

Eliminare un avviso

Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per disabilitare questa intera categoria di regole, impostare la gravità per la categoria su none nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedi anche