Sdílet prostřednictvím


Odebrání nepotřebného potlačení (IDE0079)

Vlastnost Hodnota
ID pravidla IDE0079
název Odebrání nepotřebného potlačení
kategorie CodeQuality
podkategorie Nepotřebná pravidla kódu (předvolby potlačení)
příslušné jazyky C# a Visual Basic
možností dotnet_remove_unnecessary_suppression_exclusions

Přehled

Toto pravidlo označuje nepotřebné pragma a potlačení atributů SuppressMessageAttribute ve zdroji.

Potlačení zdroje potlačí porušení pravidel kompilátoru a analyzátoru na konkrétních místech, ale ne v jiných částech zdrojového kódu. Obvykle je používáte k potlačení falešně pozitivních nebo méně důležitých porušení, která nemáte v úmyslu opravit. Potlačení se ale často stává zastaralou. K tomu může dojít v případě, že je opraveno pravidlo, které brání falešně pozitivním výsledkům nebo refaktorujete kód a vykreslíte potlačení redundantně. Toto pravidlo pomáhá identifikovat redundantní potlačení, která je možné odebrat.

Poznámka

I když vsestavení povolíte pravidla stylu kódu, toto pravidlo není povolené. Zobrazí se jenom v editoru sady Visual Studio.

Příklad

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;
}

Volby

Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností naleznete v tématu Formát možnosti.

Poznámka

Nastavení závažnosti ve formátu option_name = value:severity se nevztahuje na možnost dotnet_remove_unnecessary_suppression_exclusions a měla by se vyhnout. Místo toho zadejte závažnost pomocí samostatné položky, například:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

Vlastnost Hodnota Popis
název možnosti dotnet_remove_unnecessary_suppression_exclusions
hodnoty možností Čárkami oddělený seznam ID pravidel nebo kategorií (předpona category:) Vyloučí potlačení pro uvedená pravidla nebo kategorie.
all Zakáže pravidlo (všechna ID pravidel vyloučená).
none Povolí pravidlo pro všechna pravidla (bez vyloučení).
výchozí hodnota možnosti 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();
}

Potlačení upozornění

Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none

Chcete-li tuto celou kategorii pravidel zakázat, nastavte závažnost kategorie tak, aby se none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také