Здравствуйте, 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-ов не выполнился -- это не эквивалентно исходному коду.