Udostępnij za pośrednictwem


Usuwanie niepotrzebnego pomijania (IDE0079)

Własność Wartość
identyfikator reguły IDE0079
Tytuł Usuwanie niepotrzebnego pomijania
Kategorii Kwalifikacja kodu
podkategorii Niepotrzebne reguły kodu (preferencje pomijania)
odpowiednie języki C# i Visual Basic
opcje dotnet_remove_unnecessary_suppression_exclusions

Przegląd

Ta reguła flaguje niepotrzebne pragma i SuppressMessageAttribute pomijania atrybutów w źródle.

Pomijanie źródeł pomija naruszenia reguł kompilatora i analizatora w określonych miejscach, ale nie w innych częściach kodu źródłowego. Zazwyczaj są one używane do pomijania wyników fałszywie dodatnich lub mniej ważnych naruszeń, których nie zamierzasz naprawić. Jednak tłumienia często stają się nieaktualne. Może się tak zdarzyć, jeśli reguła została naprawiona, aby zapobiec fałszywie dodatnim lub refaktoryzować kod i w ten sposób renderować nadmiarowe pomijania. Ta reguła pomaga zidentyfikować nadmiarowe pomijania, które można usunąć.

Nuta

Nawet jeśli włączyć reguły stylu kodu nakompilacji, ta reguła nie jest włączona. Ma on tylko powierzchnie w edytorze programu Visual Studio.

Przykład

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

Opcje

Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.

Nuta

Ustawienie ważności w formacie option_name = value:severity nie ma zastosowania do opcji dotnet_remove_unnecessary_suppression_exclusions i należy unikać. Zamiast tego określ ważność przy użyciu oddzielnego wpisu, na przykład:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

Własność Wartość Opis
nazwa opcji dotnet_remove_unnecessary_suppression_exclusions
wartości opcji Rozdzielona przecinkami lista identyfikatorów reguł lub kategorii (poprzedzona category:) Wyklucza pomijanie wymienionych reguł lub kategorii
all Wyłącza regułę (wszystkie wykluczone identyfikatory reguł)
none Włącza regułę dla wszystkich reguł (bez wykluczeń)
domyślna wartość opcji 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();
}

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

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

Aby wyłączyć tę całą kategorię reguł, ustaw ważność kategorii na none w pliku konfiguracji .

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też