警告:变量在被赋值之前通过引用传递。空引用异常可能会在运行时产生

Warning : Variable is passed by reference before it has been assigned a value. A null reference exception could result at runtime

我正在 vb.net 上工作,我收到上述关于未分配参考变量的警告。当我将 Nothing 分配给变量时,警告消失了。现在我的问题是,分配 Nothing 值对参考变量有什么区别?即使我没有明确指定 Nothing,我猜默认值也是 Nothing ??如果我错了请纠正我。

PS:这是微软所说的 "If a variable has never been assigned a value, it holds the default value for its data type. For a reference data type, that default value is Nothing." 这是完整的 Link:https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42030

您会注意到这是一个警告而非错误。代码没有什么特别的错误,这就是为什么它不是错误。 ByRef 参数用于将数据传入和传出方法,因此如果您忘记在将该变量作为参数传递之前赋值,则可能会在方法中抛出 NullReferenceException 如果它假定该参数有一个值。通过将变量显式设置为 Nothing,您是在告诉编译器您特别希望该变量为 Nothing,而不仅仅是您忘记分配其他值。