变量“<variablename>”在赋值前按引用传递

更新:2007 年 11 月

错误消息

变量“<variablename>”在赋值前按引用传递。可能会在运行时导致 null 引用异常。

在向某个变量赋值之前,过程调用将该变量作为参数传递给 ByRef 参数。

如果从未向某个变量赋值,则它将具有其数据类型的默认值。对于引用数据类型,该默认值为 Nothing (Visual Basic)。在某些情况下,如果读取值为 Nothing 的引用变量,则可能引发 NullReferenceException

将参数传递给过程 ByRef 会使该参数的基础变量可能被过程修改。

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

**错误 ID:**BC42030

更正此错误

  • 如果想要过程通过 ByRef 参数向变量赋值,而且如果变量是否已具有值无关紧要,则无需执行任何操作。

  • 如果过程中的逻辑在向参数赋值前读取该参数,而且如果变量是值类型,则请确保过程逻辑不会由变量是否具有其默认值来决定。

  • 如果过程中的逻辑在向参数赋值前读取该参数,而且如果变量是引用类型,则请确保过程逻辑可以处理值 Nothing。例如,它可以使用 Try...Catch...Finally 语句 (Visual Basic) 来捕获 NullReferenceException

请参见

任务

变量疑难解答 (Visual Basic)

概念

值类型和引用类型

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

Visual Basic 中的变量声明

参考

Dim 语句 (Visual Basic)

ByRef