Как я останавливаю поиск в ширину, пользующийся Библиотекой Графика Повышения при использовании пользовательского посетителя?

  1. Лямбда-выражения могут быть преобразованы в делегатов или деревья выражений (с некоторыми ограничениями); анонимные методы могут только быть преобразованы в делегатов
  2. , Лямбда-выражения позволяют вывод типа на параметрах:
  3. Лямбда-выражения позволяют телу быть усеченным только к выражению (для возврата значения) или отдельный оператор (в других случаях) без фигурных скобок.
  4. Лямбда-выражения позволяют списку параметров быть сокращенным только к названию параметра, когда тип может быть выведен и когда существует только единственный параметр
  5. , Анонимные методы позволяют списку параметров быть опущенным полностью, когда это не используется в теле, и это не приводит к неоднозначности

, последняя точка является единственным преимуществом анонимных методов по лямбдам, я верю. Полезно создать подобное полю событие ни с какой-op подпиской хотя:

public event EventHandler Click = delegate{};
9
задан dsolimano 1 November 2011 в 15:10
поделиться

1 ответ

Решение состоит в том, чтобы создать исключение вашего известного типа, а затем перехватить его на вызывающей стороне. Из FAQ :

Как мне выполнить ранний выход из алгоритма, такого как BFS?

Создать посетителя, который выдает исключение, когда вы хотите прервать поиск, затем позвоните на widthth_first_search внутри соответствующего блока try / catch. Многим программистам это кажется неправильным использованием исключений, однако решение о том, чтобы исключения имели предпочтительный способ преждевременного выхода, было тщательно продумано. См. Подробности в обсуждениях по электронной почте.

9
ответ дан 4 December 2019 в 21:50
поделиться
Другие вопросы по тегам:

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