Usuwanie niepotrzebnego pomijania (IDE0079)
Właściwość | Wartość |
---|---|
Identyfikator zasady | IDE0079 |
Tytuł | Usuwanie niepotrzebnego pomijania |
Kategoria | CodeQuality |
Subcategory (Podkategoria) | Niepotrzebne reguły kodu (preferencje pomijania) |
Odpowiednie języki | C# i Visual Basic |
Opcje | dotnet_remove_unnecessary_suppression_exclusions |
Omówienie
Ta reguła oznacza niepotrzebne pomijania pragma i SuppressMessageAttribute 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 wynikom 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ąć.
Uwaga
Reguła IDE0079 flaguje tylko naruszenia w plikach otwartych w edytorze programu Visual Studio. Nie jest ona dostępna w przypadku kompilacji wiersza polecenia.
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 wymuszać reguła. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.
dotnet_remove_unnecessary_suppression_exclusions
Właściwość | Wartość | Opis |
---|---|---|
Nazwa opcji | dotnet_remove_unnecessary_suppression_exclusions | |
Wartości opcji | , rozdzielona lista identyfikatorów reguł lub kategorii (poprzedzona prefiksem category: ) |
Wyklucza pomijanie dla wymienionych reguł |
all |
Wyłącza regułę (wszystkie wykluczone identyfikatory reguł) | |
none |
Włącza regułę dla wszystkich reguł (bez wykluczeń) | |
Wartość opcji domyślnej | 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ść dla 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla