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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für