Поделиться через


Вызовы выражения рекурсивно, содержащие оператор< "operatorymbol>"

Выражение в процедуре оператора использует определяемый оператор. Это приводит к тому, что процедура оператора вызывает себя из-за используемых типов данных.

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

  • теми же операндами, для которых был определен оператор;

  • операндами тех же типов данных, для которых был определен оператор; или

  • операндами типов данных, которые расширяются до типов данных, для которых определяется оператор.

Рекурсивный вызов — это вызов, при котором процедура вызывает саму себя. Рекурсивный вызов может привести к бесконечному циклу, в котором управление передается через один и тот же набор операторов многократно до тех пор, пока работа приложения не будет завершена извне. Если код не содержит один или несколько тестов, которые могут использоваться для прерывания рекурсии, существует риск возникновения бесконечного цикла.

По умолчанию данное сообщение является предупреждением. Сведения о сокрытии предупреждений или обработке предупреждений как ошибок см. в разделе Configuring Warnings in Visual Basic.

Идентификатор ошибки: BC42004

Исправление ошибки

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

  • Если не требуется, чтобы процедура оператора вызывала сама себя, следует удалить все рекурсивные вызовы или заменить их операторами, которые не вызывают свои собственные процедуры.

См. также