Entfernen unnötiger Unterdrückungsvorgänge (IDE0079)

Eigenschaft Wert
Regel-ID IDE0079
Titel Entfernen unnötiger Unterdrückungsvorgänge
Kategorie CodeQuality
Unterkategorie Unnötige Coderegeln (Unterdrückungseinstellungen)
Gültige Sprachen C# und Visual Basic
Optionen dotnet_remove_unnecessary_suppression_exclusions

Übersicht

Diese Regel meldet die unnötige Unterdrückung von pragma und SuppressMessageAttribute-Attributen im Quellcode.

Quellunterdrückungen unterdrücken Verstöße gegen Compiler- und Analyseregeln an bestimmten Stellen, aber nicht in anderen Teilen des Quellcodes. Sie verwenden sie im Allgemeinen, um falsch positive oder weniger wichtige Verstöße zu unterdrücken, die Sie nicht beheben möchten. Unterdrückungen veralten jedoch oftmals. Dies kann passieren, wenn eine Regel festgelegt wird, um falsch positive Ergebnisse zu verhindern, oder Sie ein Refactoring Ihres Codes durchführen und die Unterdrückungen dadurch überflüssig machen. Diese Regel hilft, redundante Unterdrückungen zu finden, damit sie entfernt werden können.

Hinweis

Die Regel IDE0079 kennzeichnet nur Verstöße in Dateien, die im Visual Studio-Editor geöffnet sind. Sie ist für Befehlszeilenbuilds nicht verfügbar.

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 Optionsformat.

dotnet_remove_unnecessary_suppression_exclusions

Eigenschaft Wert Beschreibung
Name der Option dotnet_remove_unnecessary_suppression_exclusions
Optionswerte , getrennte Liste der Regel-IDs oder -Kategorien (mit category: als Präfix) Schließt Unterdrückungen für die aufgeführten Regeln aus
all Deaktiviert die Regel (alle Regel-IDs ausgeschlossen)
none Aktiviert die Regel für alle Regeln (keine Ausschlüsse)
Standardoptionswert 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

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder 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 Konfigurationsdatei auf none fest.

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

Um diese gesamte Kategorie von Regeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie in der Konfigurationsdatei auf none fest.

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

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Siehe auch