У меня есть следующий 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 сообщит следующее:
Когда я подписан предложение, выбрав «Удалить избыточное назначение», удалит строку success = true;
, эффективно изменив результат!
Теперь, что за переключатель / случай, спросите вы? При его удалении рекомендация исчезает:
Есть ли для этого какая-либо причина или это ошибка в Visual Studio?