Élimination de la suppression inutile (IDE0079)
Propriété | Value |
---|---|
Identificateur de la règle | IDE0079 |
Titre | Élimination de la suppression inutile |
Catégorie | CodeQuality |
Sous-catégorie | Règles de code inutiles (préférences de la suppression) |
Langages applicables | C# et Visual Basic |
Options | dotnet_remove_unnecessary_suppression_exclusions |
Vue d’ensemble
Cette règle signale les suppressions inutiles d’attributs pragma et SuppressMessageAttribute dans la source.
Les suppressions dans la source suppriment les violations des règles du compilateur et de l’analyseur à des endroits spécifiques, mais pas dans d’autres parties du code source. Vous les utilisez généralement pour supprimer les faux positifs ou les violations moins importantes que vous n’avez pas l’intention de corriger. Toutefois, les suppressions deviennent souvent obsolètes. Cela peut se produire quand une règle est corrigée pour éviter les faux positifs ou si vous refactorisez votre code et que cela entraîne une redondance des suppressions. Cette règle vous aide à identifier les suppressions redondantes, qui peuvent ensuite être supprimées.
Remarque
Même si vous activez des règles de style de code sur la build, cette règle n’est pas activée. Elle s’affiche uniquement dans l’éditeur Visual Studio.
Exemple
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;
}
Options
Les options spécifient le comportement que vous souhaitez que la règle applique. Pour plus d’informations sur la configuration des options, consultez Format d’option.
dotnet_remove_unnecessary_suppression_exclusions
Propriété | Valeur | Description |
---|---|---|
Nom d'option | dotnet_remove_unnecessary_suppression_exclusions | |
Valeurs d’option | Liste d’ID ou de catégories de règles (avec le préfixe category: ) séparés par des virgules (, ) |
Exclut les suppressions pour les règles listées |
all |
Désactive la règle (exclusion de tous les ID de règle) | |
none |
Active la règle pour toutes les règles (aucune exclusion) | |
Valeur d’option par défaut | 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();
}
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Pour désactiver la catégorie entière des règles, définissez la gravité de la catégorie sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.