Вдохновленный вопросом
И прежде чем задать этот вопрос, я прочитал:
Проблема в вопросе
написать программу, у которой есть достижимый оператор goto, но соответствующий помеченный оператор недоступен - Эрик Липперт
и один возможный ответ похож на
// the 3 lines are not important but declare variable for afterwards use
var whateverException=new Exception("whatever exception");
var whateverAction=default(Action);
whateverAction=() => whateverAction();
try {
goto whateverLabel; // (1) the goto is reachable
}
finally {
throw whateverException; // (3) because finally hijacks
}
whateverLabel: // (2) but the label is not really reached
whateverAction();
Мне интересно, что в однопоточной программе это единственный случай, когда достижимый переход указывает на недостижимую метку? И считается ли следующий код возможным ответом на это?
here:
int d=0, n=1/d;
goto here;
goto here;
достижимой, потому что достижимость учитывает только значения констант.1/d
не является константой. - person Eric Lippert   schedule 05.03.2013