Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Codeformatregeln für den Build aktivieren, ist diese Regel nicht aktiviert. Sie wird nur in der IDE 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.
Hinweis
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 den Schweregrad stattdessen mit einem separaten Eintrag an, z. B.:
dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning
dotnet_entferne_unnötige_ausgeschlossen_suppressionen
Eigenschaft | Wert | Beschreibung |
---|---|---|
Name der Option | dotnet_entferne_unnötige_ausgeschlossen_suppressionen | |
Optionswerte | Liste (Kommas als Trennzeichen) der Regel-IDs oder -Kategorien (category: vorangestellt) |
Schließt Unterdrückungen für die aufgeführten Regeln oder Kategorien 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 none
auf 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 none
auf fest.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.