Partager via


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