Поделиться через


Устранение ненужных присвоений значений (IDE0059)

Свойство Ценность
идентификатор правила IDE0059
Заголовок Удаление ненужного присвоения значений
Категория Стиль
подкатегории Ненужные правила кода (предпочтения уровня выражения)
применимые языки C# и Visual Basic
Параметры csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

Обзор

Это правило помечает ненужные назначения значений. Например:

// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();

Чтобы устранить это нарушение, выполните одно из следующих действий:

  • Если выражение справа от назначения не имеет побочных эффектов, удалите выражение или всю инструкцию назначения. Это повышает производительность, избегая ненужных вычислений.

    int v = Compute2();
    
  • Если выражение справа от присваивания имеет побочные эффекты, замените левую часть присваивания на отбрасывание (только C#) или на локальную переменную, которая никогда не используется. Отбрасывание улучшает ясность кода, явно показывая намерение избавиться от неиспользуемого значения.

    _ = Compute();
    int v = Compute2();
    

Параметры

Параметры для этого указывают, следует ли предпочесть использование отбрасывания или неиспользуемой локальной переменной.

Сведения о настройке параметров см. в разделе Формат опций.

csharp_style_unused_value_assignment_preference

Свойство Ценность Описание
название параметра стиль_присвоения_неиспользуемых_значений_в_csharp
применимые языки C#
значения опций discard_variable Предпочтительно использовать переменную-отброс при присвоении значения, которое не используется.
unused_local_variable Предпочитать использовать локальную переменную при назначении значения, которое не используется
значение параметра по умолчанию discard_variable
// csharp_style_unused_value_assignment_preference = discard_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    _ = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

// csharp_style_unused_value_assignment_preference = unused_local_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    var unused = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

стиль_visual_basic_предпочтение_присваивания_неиспользуемого_значения

Свойство Ценность Описание
название параметра visual_basic_style_unused_value_assignment_preference
применимые языки Visual Basic
значения опций unused_local_variable Предпочитать использовать локальную переменную при назначении значения, которое не используется
значение параметра по умолчанию unused_local_variable
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()

Подавление предупреждения

Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

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

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации .

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

Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Style, чтобы none в файле конфигурации .

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

Дополнительные сведения см. в статье Подавление предупреждений анализа кода.

Свойство Ценность
Идентификатор правила IDE0059
Заголовок Значение не используется
Категория Стиль
применимые языки F#
Опции Нет

Обзор

Это правило помечает ненужные назначения значений. Например, answer не используется в следующем фрагменте кода:

type T() =
    let answer = 42

См. также