Удалить ненужное подавление (IDE0079)
Свойство | Значение |
---|---|
Идентификатор правила | IDE0079 |
Title | Удалить ненужное подавление |
Категория | Качество кода |
Подкатегория | Ненужные правила кода (настройки подавления) |
Применимые языки | C# и Visual Basic |
Параметры | dotnet_remove_unnecessary_suppression_exclusions |
Обзор
Это правило помечает ненужные подавления атрибутов pragma и SuppressMessageAttribute в источнике.
Подавление источника подавляет нарушения правил компилятора и анализатора в определенных местах, но не в других частях исходного кода. Как правило, они используются для подавления ложноположительных результатов или менее важных нарушений, которые вы не собираетесь исправлять. Однако подавления часто устаревает. Это может произойти, если исправлено правило для предотвращения ложноположительных результатов или вы рефакторингуете код и при этом делаете подавления избыточными. Это правило помогает выявить избыточные подавления, которые можно удалить.
Примечание
IDE0079 правила помечает нарушения только в файлах, открытых в редакторе Visual Studio. Он недоступен для сборок из командной строки.
Пример
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;
}
Варианты
Параметры определяют поведение, которое требуется применить правилом. Сведения о настройке параметров см. в разделе Формат параметра.
dotnet_remove_unnecessary_suppression_exclusions
Свойство | Значение | Описание |
---|---|---|
Имя параметра | dotnet_remove_unnecessary_suppression_exclusions | |
Значения параметра | , разделенный список идентификаторов правил или категорий (с префиксом category: ) |
Исключает подавления для перечисленных правил. |
all |
Отключает правило (все идентификаторы правил исключаются) | |
none |
Включает правило для всех правил (без исключений) | |
Значение параметра по умолчанию | 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();
}
Отключение предупреждений
Если вы хотите подавить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и снова включить правило.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
Чтобы отключить правило для файла, папки или проекта, задайте для его серьезности none
значение в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Чтобы отключить всю эту категорию правил, задайте для категории none
значение серьезности в файле конфигурации.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по