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

更新:2007 年 11 月

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

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

如果将 ByRef 变量值复制到了过程,并且变量和参数的类型相同,则不必进行转换。但是,如果类型不同,则 Visual Basic 必须进行双向转换。由于无法在过程变量或参数上使用 CType 或任何其他转换关键字,因此,此类转换始终是隐式的。

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

**错误 ID:**BC41999

更正此错误

  • 如有可能,请使用类型与过程参数相同的调用变量,这样 Visual Basic 就无需进行任何转换。

  • 如果需要使用与参数类型不同的变量类型来调用过程,但无需将值返回到调用变量,请将参数定义为 ByVal,而不是 ByRef。

请参见

概念

Visual Basic 中的过程

过程参数和变量

通过值和通过引用传递参数

隐式转换和显式转换