Ta bort onödig undertryckning (IDE0079)
Egenskap | Värde |
---|---|
regel-ID | IDE0079 |
rubrik | Ta bort onödig undertryckning |
kategori | CodeQuality |
underkategori | Onödiga kodregler (inställningar för undertryckning) |
Tillämpliga språk | C# och Visual Basic |
alternativ | dotnet_remove_unnecessary_suppression_exclusions |
Överblick
Den här regeln flaggar onödiga pragma och SuppressMessageAttribute attributundertryckningar i källan.
Källundertryckningar undertrycker överträdelser av kompilator- och analysregler på specifika platser men inte i andra delar av källkoden. Du använder dem vanligtvis för att förhindra falska positiva eller mindre viktiga överträdelser som du inte tänker åtgärda. Undertryckningar blir dock ofta inaktuella. Detta kan inträffa om en regel har åtgärdats för att förhindra falska positiva identifieringar eller om du omstrukturerar koden och därmed gör undertryckningarna redundanta. Den här regeln hjälper till att identifiera redundanta undertryckningar som kan tas bort.
Not
Även om du aktivera regler för kodformat på build-är den här regeln inte aktiverad. Den visas bara i Visual Studio-redigeraren.
Exempel
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;
}
Alternativ
Alternativ anger det beteende som du vill att regeln ska framtvinga. Information om hur du konfigurerar alternativ finns i Alternativformat.
Not
Att ange allvarlighetsgrad i formatet option_name = value:severity
gäller inte för alternativet dotnet_remove_unnecessary_suppression_exclusions
och bör undvikas. Ange i stället allvarlighetsgraden med en separat post, till exempel:
dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning
dotnet_remove_unnecessary_suppression_exclusions
Egenskap | Värde | Beskrivning |
---|---|---|
Alternativnamn | dotnet_remove_unnecessary_suppression_exclusions | |
Alternativvärden | Kommaavgränsad lista över regel-ID:er eller kategorier (prefix med category: ) |
Exkluderar undertryckningar för de listade reglerna eller kategorierna |
all |
Inaktiverar regeln (alla regel-ID:t exkluderas) | |
none |
Aktiverar regeln för alla regler (inga undantag) | |
standardalternativvärde | 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();
}
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan regeln.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Om du vill inaktivera hela den här regelkategorin anger du allvarlighetsgraden för kategorin till none
i -konfigurationsfilen.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.