Удаление ненужных подавлений (IDE0079)
Свойство | Ценность |
---|---|
идентификатор правила | IDE0079 |
заголовок | Удаление ненужного подавления |
категории | CodeQuality |
подкатегории | Ненужные правила кода (предпочтения подавления) |
применимые языки | C# и Visual Basic |
параметров |
dotnet_remove_unnecessary_suppression_exclusions |
Обзор
Это правило помечает ненужные pragma и подавление атрибутов SuppressMessageAttribute в источнике.
Подавление источника подавляет нарушения правил компилятора и анализатора в определенных местах, но не в других частях исходного кода. Как правило, вы используете их для подавления ложных срабатываний или менее важных нарушений, которые вы не собираетесь исправить. Однако подавление часто становится устаревшим. Это может произойти, если правило исправлено, чтобы предотвратить ложные срабатывания или рефакторинг кода, и при этом отрисовка избыточности подавления. Это правило помогает определить избыточные подавления, которые можно удалить.
Заметка
Даже если вы включить правила стиля кода для сборки, это правило не включено. Он отображается только в редакторе 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;
}
Параметры
Параметры указывают поведение, которое требуется применить правило. Сведения о настройке параметров см. в формата параметра.
Заметка
Установка серьезности в формате option_name = value:severity
не применяется к параметру dotnet_remove_unnecessary_suppression_exclusions
и следует избежать. Вместо этого укажите серьезность с помощью отдельной записи, например:
dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning
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
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Чтобы отключить эту всю категорию правил, задайте уровень серьезности для категории none
в файле конфигурации .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- pragma
- SuppressMessageAttribute
- справочник по правилам стиля кода