Re: Convert to switch
От: nikov США http://www.linkedin.com/in/nikov
Дата: 09.12.17 21:13
Оценка: +2
Здравствуйте, AndrewVK, Вы писали:

AVK>Есть у сабжа небольшая недоработочка.

AVK>Исходный код:
AVK>
AVK>if (c1) ...
AVK>if (c2) ...
AVK>throw SomeEx();
AVK>


AVK>После рефакторинга:

AVK>
AVK>switch()
AVK>{
AVK>  case c1: ...; break;
AVK>  case c2: ...; break;
AVK>}
AVK>throw SomeEx();
AVK>


AVK>А хотелось бы:

AVK>
AVK>switch()
AVK>{
AVK>  case c1: ...; break;
AVK>  case c2: ...; break;
AVK>  default: throw SomeEx();
AVK>}
AVK>


В исходном коде исключение кидается после выполнения if-ов независимо от истинности условий в них. То же происходит и в switch-е, сгенерированном решарпером. А в коде, который ты предлагаешь, исключение кидается только если ни один из case-ов не выполнился -- это не эквивалентно исходному коду.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.