Share via


Ta bort onödig undertryckning (IDE0079)

Property Värde
Regel-ID IDE0079
Title Ta bort onödig undertryckning
Kategori CodeQuality
Underkategori Onödiga kodregler (inställningar för undertryckning)
Tillämpliga språk C# och Visual Basic
Alternativ dotnet_remove_unnecessary_suppression_exclusions

Översikt

Den här regeln flaggar onödiga pragma - och SuppressMessageAttribute attributundertryckningar i källan.

Källundertryckningar undertrycker överträdelser av kompilator- och analysregler på specifika platser men inte i andra delar av källkoden. Du använder dem vanligtvis för att förhindra falska positiva eller mindre viktiga överträdelser som du inte tänker åtgärda. Undertryckningar blir dock ofta inaktuella. Detta kan inträffa om en regel har åtgärdats för att förhindra falska positiva identifieringar eller om du omstrukturerar koden och därmed gör undertryckningarna redundanta. Den här regeln hjälper till att identifiera redundanta undertryckningar som kan tas bort.

Kommentar

Även om du aktiverar regler för kodformat vid kompilering är den här regeln inte aktiverad. Den visas bara i Visual Studio-redigeraren.

Exempel

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

Alternativ

Alternativ anger det beteende som du vill att regeln ska framtvinga. Information om hur du konfigurerar alternativ finns i Alternativformat.

dotnet_remove_unnecessary_suppression_exclusions

Property Värde beskrivning
Alternativnamn dotnet_remove_unnecessary_suppression_exclusions
Alternativvärden , avgränsad lista över regel-ID:er eller kategorier (prefix med category:) Exkluderar undertryckningar för de listade reglerna
all Inaktiverar regeln (alla regel-ID:t exkluderas)
none Aktiverar regeln för alla regler (inga undantag)
Standardalternativvärde 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();
}

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan regeln.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Om du vill inaktivera hela den här regelkategorin anger du allvarlighetsgraden för kategorin till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även