在我的PowerBuilder应用程序中,以下代码段在运行时导致R0002错误(正在引用空对象):
Window w = windows[idx]
IF NOT IsNull( w ) THEN
MessageBox( "", "ClassName is " + w.GetClassName() ) // This line crashes
END IF
有人知道为什么吗?我的印象是IsNull()专门用于测试空值。
答案 0 :(得分:5)
我认为这些是不同种类的NULL。 一个是值为NULL的变量 另一个是不存在或尚未实例化的对象。
在第二种情况下,您可能希望使用isValid()。
答案 1 :(得分:3)
使用IsValid(w)
来确定是否实例化了对象变量 - 它的值是否是有效的对象句柄。