变量“<variablename>”在赋值前按引用传递(结构变量)
更新:2007 年 11 月
错误消息
变量“<variablename>”在赋值前按引用传递。可能会在运行时导致 null 引用异常。请确保结构或所有引用成员在使用前已经初始化
在向某个结构变量赋值之前,过程调用将该变量作为参数传递给 ByRef 参数。
如果从未向某个结构变量赋值,则每个结构成员将具有其数据类型的默认值。对于引用数据类型,该默认值为 Nothing (Visual Basic)。读取值为 Nothing 的引用成员可能会在某些情况下引发 NullReferenceException。
将参数传递给过程 ByRef 会使该参数的基础变量可能被过程修改。
默认情况下,此消息是一个警告。有关隐藏警告或将警告视为错误的更多信息,请参见 在 Visual Basic 中配置警告。
**错误 ID:**BC42108
更正此错误
如果想要过程通过 ByRef 参数向结构成员赋值,而且如果成员是否已具有值无关紧要,则无需执行任何操作。
如果过程中的逻辑在向结构成员赋值前读取该成员,而且如果成员是值类型,则请确保过程逻辑不会由成员是否具有其默认值来决定。
如果过程中的逻辑在向结构成员赋值前读取该成员,而且如果成员是引用类型,则请确保过程逻辑可以处理值 Nothing。例如,它可以使用 Try...Catch...Finally 语句 (Visual Basic) 来捕获 NullReferenceException。