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

更新:2007 年 11 月

错误消息

变量“<variablename>”在赋值前按引用传递。可能会在运行时导致 null 引用异常。请确保结构或所有引用成员在使用前已经初始化

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

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

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

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

**错误 ID:**BC42108

更正此错误

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

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

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

请参见

任务

变量疑难解答 (Visual Basic)

概念

值类型和引用类型

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

Visual Basic 中的变量声明

参考

Dim 语句 (Visual Basic)

ByRef

Structure 语句

其他资源

结构:您自己的数据类型