Главная » C# » Оператор goto в Visual C# (Sharp)

0

Оператор  goto позволяет  передавать  управление  из  одного  места  кода  в другое. В прошлом, когда не было объектов, методов и других продвинутых конструктивов программирования, разработчики использовали оператор goto, потому что у них не было другого выхода. В настоящее время многие разработчики программного обеспечения недолюбливают оператор goto. Они считают его использование прнаком неряшливого программирования, и что его никогда не следует применять. На форуме Channel 9 (http://channelg.msdn.com/ShowPostaspx?PageIndex=I&PostID= 14652) есть хорошая дискуссия на предмет использования оператора goto.

Мне лично нравится в реализации оператора goto в языке С# то, что он предназнен для решения определенной проблемы, но не вызывает старых проблем. Поэту, если вам нужно использовать оператор goto,  так используйте его, только не злоупотребляйте им.

В следующем псевдокоде приводится пример ситуации, в которой избежать иользования оператора goto невозможно:

while (FirstActionLoop()) { while (SecondActionLoop()) {

if (BreakOutOfLoops()) { goto EXIT_ALL;

}

}

}

EXIT_ALL:

В коде имеются два цикла. Если код выполняет внутренний цикл и решит прекрить работу, то сделать это будет трудно, т. к. исполнение можно прервать с помью оператора break только в одном цикле за раз. Таким образом, единственным действенным решением будет использование оператора goto, как показано в коде.

Оператор goto ассоциирован с идентификатором, представляющим метку, котую можно поместить почти в любом месте объявленного метода. Единственным исключением, где нельзя помещать метку, будет оператор switch case. Но метку можно поместить до или после ключевого слова goto.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии