升级建议:避免使用空传播

更新:2007 年 11 月

Visual Basic 的早期版本支持 null 传播。null 传播支持这样的前提:当表达式中使用 Null 时,表达式的结果将自动为 Null。在下面的示例中的每种情况下,V 的结果始终为 Null。

Dim V
V = 1 + Null
V = Null + Right$("SomeText", 1)
V = Right("SomeText", 0)

在 Visual Basic 2008 中不支持 null 传播。语句 1+Null 将在 Visual Basic 2008 中产生类型不匹配。另外,Visual Basic 6.0 具有两个版本的 Left 函数(Left$ 返回字符串,Left 返回可能为 Null 的变量),Visual Basic 2008 只有一个版本 — Left,该版本始终返回字符串。

为了同时与 Visual Basic 6.0 和 Visual Basic 2008 相兼容,应始终编写代码对 Null 进行测试,而不是依赖 null 传播。而且,在 Visual Basic 2008 中下列函数将不再返回 Null:

Chr, Command, CurDir, Date, Environ, Error, Hex, LCase, LTrim, Oct, Right, RTrim, Space, Str, Time, Trim, UCase

null 传播通常用于数据库应用程序,这时需要检查数据库字段是否包含 Null。在这些情况下,应使用函数 IsNull() 检查结果并执行适当的操作。

请参见

其他资源

有关升级的语言建议