2009-08-27 32 views
1

在我的PowerBuilder應用,下面的代碼段將導致在運行時錯誤R0002(空對象被引用):IsNull()防止引用空對象嗎?

Window w = windows[idx] 
IF NOT IsNull(w) THEN 
    MessageBox("", "ClassName is " + w.GetClassName()) // This line crashes 
END IF 

有誰知道這是爲什麼?我的印象是IsNull()專門用於測試空值。

回答

5

我認爲這些是不同種類的NULL。 其中一個是值爲NULL的變量 另一個是不存在或尚未實例化的對象。

在第二種情況下,您可能想要使用isValid()。

3

使用IsValid(w)爲了確定一個對象變量是否被實例化 - 它的值是否是一個有效的對象句柄。