Onnodige onderdrukking verwijderen (IDE0079)
Eigenschap | Waarde |
---|---|
regel-id | IDE0079 |
titel | Onnodige onderdrukking verwijderen |
categorie | CodeQuality |
subcategorie | Overbodige coderegels (onderdrukkingsvoorkeuren) |
Toepasselijke talen | C# en Visual Basic |
opties | dotnet_remove_unnecessary_suppression_exclusions |
Overzicht
Deze regel markeert onnodige pragma- en SuppressMessageAttribute kenmerkonderdrukkingen in de bron.
Brononderdrukkingen onderdrukken schendingen van compiler- en analyseregels op specifieke plaatsen, maar niet in andere delen van de broncode. Over het algemeen gebruikt u ze om fout-positieven of minder belangrijke schendingen te onderdrukken die u niet wilt oplossen. Onderdrukkingen worden echter vaak verouderd. Dit kan gebeuren als een regel is opgelost om fout-positieven te voorkomen of als u uw code herstructureert en hierdoor de onderdrukkingen overbodig maakt. Deze regel helpt bij het identificeren van redundante onderdrukkingen, die kunnen worden verwijderd.
Notitie
Zelfs als u codestijlregels inschakelen voor het bouwen van, is deze regel niet ingeschakeld. Deze wordt alleen weergegeven in de Visual Studio-editor.
Voorbeeld
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;
}
Opties
Met opties geeft u het gedrag op dat door de regel moet worden afgedwongen. Zie Option-indelingvoor meer informatie over het configureren van opties.
Notitie
Het instellen van een ernst in de indeling option_name = value:severity
niet van toepassing is op de optie dotnet_remove_unnecessary_suppression_exclusions
en moet worden vermeden. Geef in plaats daarvan de ernst op met behulp van een afzonderlijke vermelding, bijvoorbeeld:
dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning
dotnet_remove_unnecessary_suppression_exclusions
Eigenschap | Waarde | Beschrijving |
---|---|---|
optienaam | dotnet_remove_unnecessary_suppression_exclusions | |
optiewaarden | Door komma's gescheiden lijst met regel-id's of categorieën (voorafgegaan door category: ) |
Onderdrukkingen voor de vermelde regels of categorieën uitsluiten |
all |
Hiermee wordt de regel uitgeschakeld (alle regel-id's uitgesloten) | |
none |
Hiermee schakelt u de regel in voor alle regels (geen uitsluitingen) | |
standaardoptiewaarde | 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();
}
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Als u deze hele categorie regels wilt uitschakelen, stelt u de ernst voor de categorie in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Zie Codeanalysewaarschuwingen onderdrukkenvoor meer informatie.