我正在使用PowerBuilder,並且if條件有問題。我想檢查一個變量是否爲空或它不是空的。PowerBuilder NULL和空變量
所以首先我有以下if條件測試,如果變量爲空或不是:
IF IsNull(ls_name) THEN
messagebox("ls_name", "is null") //true
else
messagebox("ls_name", "is not null")
end if
從上面的情況,我知道ls_name爲空。現在我測試它是否爲空:
if ls_name = "" then
messagebox ("ls_name", "is empty")
else
messagebox("ls_name", "is not empty") //true
end if
而且我得到的那個ls_name不是空的。
現在,當我使用if條件,以檢查是否ls_name不爲空,或者它是不是空的,我把下面的if條件:
IF not IsNull(ls_name) or ls_name <> "" THEN
messagebox("test", "condition true")
else
messagebox("test", "condition false") //this becomes true.
end if
它轉到條件的其他部分。不應該如果部分成爲真實?我在寫if條件錯了嗎?
GOTO場景:從我自己的意見除了(我會盡量避免「60年代的邪惡文物」),更重要的意見是微軟的。 GOTO在.NET中不受支持,所以將它放在PB代碼中意味着在移植到PB.NET之前您將有一個修復方法,因爲Microsoft缺乏支持,因此不支持它。時代,他們是一個'長生不老',就像你的編碼風格一樣。 –
Terry
2012-03-06 14:00:24
@Terry:我不會太在意'goto'的使用情況,但我們可以看到,這裏有幾個相當詳細的應用程序,目前在11.5經典版中,可能會升級到12.5經典版,但從未升級到.NET版我們的自定義PBNI擴展。這需要重新編寫一個明顯的努力,並且這種努力可能永遠不會被公司的大腦計劃......我不知道.NET不提供轉到,但我們確實在C或PB中謹慎使用它,主要用於清理目的錯誤處理,它實際上是有幫助的。 Java也缺少它(即使goto操作碼確實存在)... – Seki 2012-03-06 17:21:19
FWIW,GoTo *在C#和Visual Basic中受支持,是否存在有效的用例是一個問題:) – 2012-03-07 00:26:42