BC41999:将“ByRef”参数“<>”的值复制回匹配参数时,发生从“<typename1>”到“<typename2>”的隐式转换。

调用过程时使用的 ByRef 参数的类型与其对应参数的类型不同。

传递参数 ByRef 时,Visual Basic 有时会将参数值复制到过程的局部变量中,而不是传递一个引用。 在这种情况下,当过程返回时,Visual Basic 必须随后将局部变量值复制回调用代码中的参数。

如果将 ByRef 实参值复制到过程中,并且实参与形参为同一类型,则不必进行转换。 但是,如果类型不同,则必须对 Visual Basic 进行双向转换。 由于不能在过程参数上使用 CType 或任何其他转换关键字,因此此类转换始终是隐式的。

默认情况下,此消息是一个警告。 有关隐藏警告或将警告视为错误的信息,请参见 Configuring Warnings in Visual Basic

错误 ID:BC41999

更正此错误

  • 如果可能,请使用与过程参数同类型的调用参数,这样 Visual Basic 就不需要进行任何转换。

  • 如果需要调用实参类型与形参类型不同的过程,但不需要将值返回到调用实参中,请将形参定义为 ByVal 而不是 ByRef

另请参阅