Вдохновленный от вопросаЭто единственный случай, когда достижимый 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();
Мне интересно, что в одной программе потока, - это единственный случай, когда достижимый goto указывает на недостижимый ярлык? И следующий код также считается приемлемым для этого?
here:
int d=0, n=1/d;
goto here;
Вопрос без голосования, ответа или даже комментария в течение четырех часов действительно странный. –
Спецификация C# рассмотрит ваш 'goto here;' * достижимый *, потому что достижимость учитывает значения * констант *. '1/d' не является константой. –