Visual Studio IDE0059 C# Ненужное присвоение значения ошибки? - PullRequest
4 голосов
/ 26 февраля 2020

У меня есть следующий C# код (я уменьшил его до минимума, чтобы упростить его). Visual Studio 2019,. NET Framework 4.7.2.

public void Demo()
{
    ReportStart();
    var success = false;
    try
    {
        int no = 1;
        switch (no)
        {
            case 1:
            default:
                break;
        }

        DoSomething();

        success = true;
    }
    finally
    {
        ReportEnd(success);
    }
}

Насколько я понимаю, в этом нет ничего плохого. Функция может завершиться ошибкой (я не хочу ее перехватывать), но перед выходом она сообщит об успешном выполнении другому методу. При отладке он делает именно то, что должен.

Интересно, что Visual Studio 2019 сообщит следующее:

IDE0059

Когда я подписан предложение, выбрав «Удалить избыточное назначение», удалит строку success = true;, эффективно изменив результат!

Теперь, что за переключатель / случай, спросите вы? При его удалении рекомендация исчезает:

Animation

Есть ли для этого какая-либо причина или это ошибка в Visual Studio?

1 Ответ

0 голосов
/ 28 февраля 2020

Кажется, это известная проблема с Roslyn и Visual Studio 2019 16.4, пожалуйста, обратитесь к следующим проблемам GitHub, # 39755 и # 39344 .

Вехой установлена ​​версия 16.5 Preview 2, поэтому она уже исправлена, и вы можете попробовать версию Preview 2 of 16.5 или дождаться стабильной (лично я не использую версии Preview)

...