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


Выражение рекурсивно вызывает содержащий его оператор <символОператора>

Обновлен: Ноябрь 2007

Expression recursively calls containing Operator '<operatorsymbol>'

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

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

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

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

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

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

По умолчанию это сообщение является предупреждающим. Дополнительные сведения о скрытии предупреждений или их обработке как ошибки см. в разделе Настройка предупреждений в Visual Basic.

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

Чтобы исправить данную ошибку

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

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

См. также

Задачи

Практическое руководство. Определение оператора

Практическое руководство. Определение оператора преобразования

Основные понятия

Процедуры операторов

Ссылки

Оператор Operator