Supprimer la suppression inutile (IDE0079)
Propriété | Valeur |
---|---|
ID de règle | IDE0079 |
titre | Supprimer la suppression inutile |
catégorie | CodeQuality |
sous-catégorie | Règles de code inutiles (préférences de suppression) |
langues applicables | C# et Visual Basic |
options | dotnet_remove_unnecessary_suppression_exclusions |
Aperçu
Cette règle signale les suppressions d’attributs inutiles pragma et SuppressMessageAttribute dans la source.
Les suppressions de sources suppriment les violations des règles du compilateur et de l’analyseur dans des emplacements 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 si une règle est corrigée pour empêcher les faux positifs ou que vous refactorisez votre code et, dans ce cas, affichez les suppressions redondantes. Cette règle permet d’identifier les suppressions redondantes, qui peuvent être supprimées.
Note
Même si vous activer 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 appliquer à la règle. Pour plus d’informations sur la configuration des options, consultez format d’option.
Note
La définition d’une gravité au format option_name = value:severity
ne s’applique pas à l’option dotnet_remove_unnecessary_suppression_exclusions
et doit être évitée. Au lieu de cela, spécifiez la gravité à l’aide d’une entrée distincte, par exemple :
dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning
dotnet_remove_unnecessary_suppression_exclusions
Propriété | Valeur | Description |
---|---|---|
nom de l’option | dotnet_remove_unnecessary_suppression_exclusions | |
valeurs d’option | Liste séparée par des virgules d’ID de règle ou des catégories (précédées de category: ) |
Exclut les suppressions pour les règles ou catégories répertoriées |
all |
Désactive la règle (tous les ID de règle exclus) | |
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 souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez 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 d’un fichier, d’un dossier ou d’un projet, définissez sa gravité sur none
dans le fichier de configuration .
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Pour désactiver toute cette catégorie de 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 d’analyse du code.
Voir aussi
- pragma
- SuppressMessageAttribute
- informations de référence sur les règles de style de code