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


Неявное приведение <имяТипа1> к <имяТипа2> при копировании значения параметра <имяПараметра>, объявленного как ByRef, обратно в соответствующий аргумент.

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

Implicit conversion from '<typename1>' to '<typename2>' in copying the value of 'ByRef' parameter '<parametername>' back to the matching argument.

Процедура вызывается с помощью аргумента ByRef типа, отличного от соответствующего ему параметра.

При передаче аргумента ByRefVisual Basic иногда копирует его значение в локальную переменную в процедуре вместо передачи ссылки. В таком случае, когда процедура возвращает результат, Visual Basic должен скопировать значение локальной переменной обратно в аргумент в коде вызова.

Если значение аргумента ByRef копируется в процедуру и аргумент и параметр имеют один и тот же тип, то преобразование не требуется. Но если типы различны, то Visual Basic должен выполнить преобразование в обоих направлениях. Поскольку невозможно использовать CType или любые другие ключевые слова для определения параметра или аргумента процедуры преобразования, такое преобразование всегда является неявным.

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

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

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

  • По возможности следует использовать аргумент вызова того же типа, что и параметр процедуры, чтобы для Visual Basic не было необходимости выполнять какие-либо преобразования.

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

См. также

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

Процедуры в Visual Basic

Параметры и аргументы процедуры

Передача аргументов по значению или по ссылке

Явные и неявные преобразования