myObj a
setNull(a)
if isNull(a) and a.XXX <> 0 then
//居然報個例外:Null object reference,真的if陳述句不支持短路執行
end if
uj5u.com熱心網友回復:
第一個為真的話必然要執行后面條件呀,你為什么這樣測呢uj5u.com熱心網友回復:
if isNull(a) thenuj5u.com熱心網友回復:
應該是少寫了個notif not isNull(a) and a.XXX <> 0 then
然后這樣報錯吧,明天再看看,哈哈,寫多了c#/java,發現pb不能怎么舒服怎么寫
uj5u.com熱心網友回復:
優先級的問題,不要吝嗇用括號,這樣邏輯更清楚些~uj5u.com熱心網友回復:
確認了沒忘掉not,也加了括號,結果還是:
也是醉了,一不留神就是坑
uj5u.com熱心網友回復:
isvalid(a)uj5u.com熱心網友回復:
myObj asetNull(a)
//空就回傳
if isNull(a) then return
//如果他要是NULL,你怎么還能看到他后面的成員呢??改成這樣試試吧。
if a.XXX <> 0 then return
uj5u.com熱心網友回復:
沒創建吧?是不是要
a = Create myobj
uj5u.com熱心網友回復:
PB不支持短路徑。所有條件都會測驗一次。
uj5u.com熱心網友回復:
a = create promotion_item 實體化uj5u.com熱心網友回復:
沒有ceate 用isvalid 先判斷有沒有實體化,再來判斷值的問題,建議try catch finally 包起來 程式可讀性比較強uj5u.com熱心網友回復:
pb的if語法不是短路判定,而是所有條件全部判定,這一點的確很坑,你只能分成兩條陳述句或者嵌套ifuj5u.com熱心網友回復:
myobj 是一個物件 根據這個物件是否自動實體化 來決定要不要加a = Create myobj
另外 針對一個物件是不能用 isnull(a) 的 要使用 isvalid(a) 來判斷
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18105.html
標籤:非技術版
