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

Eigenschaft Wert
Regel-ID IDE0079
Titel Entfernen unnötiger Unterdrückungsvorgänge
Kategorie CodeQuality
Unterkategorie Nicht benötigte Coderegeln
Gültige Sprachen C# und Visual Basic

Übersicht

Diese Regel meldet die unnötige Unterdrückung von pragma und SuppressMessageAttribute-Attributen im Quellcode. Unterdrückungsvorgänge im Quellcode dienen dazu, Warnungen von Verstößen gegen Compiler- und Analyseregeln für bestimmte Teile des Quellcodes zu unterdrücken, ohne die Regeln für die übrigen Codeteile zu deaktivieren. Sie werden in der Regel hinzugefügt, um False Positives oder weniger wichtige Verstoßwarnungen zu unterdrücken, die Benutzer nicht beheben möchten. Unterdrückungsvorgänge veralten oftmals, weil die Regeln angepasst werden, um False Positives zu vermeiden, oder weil der Benutzercode umgestaltet wurde, um die Unterdrückungsvorgänge überflüssig zu machen. Diese Regel hilft, solche redundanten Unterdrückungsvorgänge zu finden, damit diese entfernt werden können.

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

dotnet_remove_unnecessary_suppression_exclusions

Eigenschaft Wert
Name der Option dotnet_remove_unnecessary_suppression_exclusions
Optionswerte Eine durch Trennzeichen (,) getrennte Liste von Regel-IDs oder Regelkategorien (mit dem Präfix category:), deren Unterdrückungen von der Analyse ausgeschlossen werden müssen

all: deaktiviert die Regel

none: aktiviert die Regel für alle Regel-IDs und Regelkategorien
Standardoptionswert none

Beispiel

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

Siehe auch