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
Auch wenn Sie Codeformatvorlagenregeln beim Build aktivieren, 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 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.