Соглашения о присвоении имен для маркировок GoTo

Если операции, выполняемые путем изменения полей со списком, согласованы, вы можете написать одну подпрограмму, которая принимает значение поля со списком и что-то с ним делает. Затем на эту подпрограмму можно ссылаться в методе AfterUpdate каждого комбинированного блока.

Например:

Private Sub DoComboBoxThing(varComboValue as Variant)
    'Do something here with the combobox value
End Sub

Затем эта функция вызывается в поле со списком после обновления:

Private Sub Combo_Box_AfterUpdate ()
    DoComboBoxThing Combo_Box.Value
End Sub

Вы можете указать все поля со списком для одной и той же подпрограммы. [ 116]

5
задан dr. evil 28 March 2009 в 19:34
поделиться

5 ответов

Мои имена маркировки почти всегда попадают в один из этих шаблонов:

  • Названный "перезапуском", для перезапуска ряда вложенных циклов, потому что изменение делало недействительным что-то
  • Названный "выходом" или "возвратом", прямо перед оператором возврата, и только там из-за оператора трассировки, который регистрирует возвращаемое значение для отладки
  • Имеет то же имя как логическая переменная, которую оно заменяет
5
ответ дан 13 December 2019 в 19:36
поделиться
  • "очистка", если это стоит прежде, чем освободить некоторые ранее выделенные ресурсы (или подобный отчасти 'наконец' разделяют работу),
2
ответ дан 13 December 2019 в 19:36
поделиться

В пакетных файлах я часто использую АД.

Как:

some_command || GOTO HELL

...

HELL: 

echo "Ouch, Hot!"
3
ответ дан 13 December 2019 в 19:36
поделиться

В Фортране я использую goto для откатов, и я обычно запускаю от 999 назад (в Фортране, goto маркировки являются только числовыми),

    call foo(err)
    if (err /= 0) goto 999

    call bar(err)
    if (err /= 0) goto 998

    call baz(err)
    if (err /= 0) goto 997

    ! everything fine
    error = 0
    return

997 call undo_bar()
998 call undo_foo()
999 error = 1
    return

Я также использую маркировки, больше, чем 1 000, если по некоторым причинам я хочу пропустить часть отката.

В C и других языках, я использовал бы rollbacknumber (например, rollback1, rollback2), таким образом, ясно из маркировки, что Вы собираетесь откатывать. Это - в основном единственное серьезное основание для использования goto.

1
ответ дан 13 December 2019 в 19:36
поделиться

Мне обычно только нужен он для 2 случаев. По сути, мои маркировки goto или начинаются или наконец.

0
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: