Freigeben über


Entfernen sie unnötige Unterdrückung (IDE0079)

Eigentum Wert
Regel-ID IDE0079
Titel Entfernen unnötiger Unterdrückung
Kategorie- CodeQuality
Unterkategorie Unnötige Coderegeln (Unterdrückungseinstellungen)
Anwendbare Sprachen C# und Visual Basic
Optionen dotnet_remove_unnecessary_suppression_exclusions

Überblick

Diese Regel kennzeichnet unnötige pragma und SuppressMessageAttribute Attributunterdrückungen in der Quelle.

Quellunterdrückungen unterdrücken Verstöße gegen Compiler- und Analyseregeln an bestimmten Stellen, aber nicht in anderen Teilen des Quellcodes. Sie verwenden sie in der Regel, um falsch positive oder weniger wichtige Verstöße zu unterdrücken, die Sie nicht beheben möchten. Unterdrückungen werden jedoch oft veraltet. Dies kann passieren, wenn eine Regel behoben ist, um falsch positive Ergebnisse zu verhindern oder Den Code umzugestalten und dabei die Unterdrückung redundant zu rendern. Diese Regel hilft dabei, redundante Unterdrückungen zu identifizieren, die entfernt werden können.

Anmerkung

Auch wenn Sie Codestilregeln für buildaktivieren , ist diese Regel nicht aktiviert. Sie wird nur im Visual Studio-Editor angezeigt.

Beispiel

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

Optionen

Optionen geben das Verhalten an, das die Regel erzwingen soll. Informationen zum Konfigurieren von Optionen finden Sie unter Option format.

Anmerkung

Das Festlegen eines Schweregrads im Format option_name = value:severity gilt nicht für die Option dotnet_remove_unnecessary_suppression_exclusions und sollte vermieden werden. Geben Sie stattdessen den Schweregrad mithilfe eines separaten Eintrags an, z. B.:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

Eigentum Wert Beschreibung
Optionsname dotnet_remove_unnecessary_suppression_exclusions
Optionswerte Durch Trennzeichen getrennte Liste von Regel-IDs oder -Kategorien (präfixiert mit category:) Schließt Unterdrückungen für die aufgeführten Regeln oder Kategorien aus.
all Deaktiviert die Regel (alle ausgeschlossenen Regel-IDs)
none Aktiviert die Regel für alle Regeln (keine Ausschlüsse)
Standardwert 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();
}

Unterdrücken einer Warnung

Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.

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

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none fest.

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

Um diese gesamte Regelkategorie zu deaktivieren, legen Sie den Schweregrad für die Kategorie auf none in der Konfigurationsdateifest.

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

Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.

Siehe auch