And:對兩個Boolean表達式執行邏輯和。
AndAlso:與AndAlso類似,關鍵差異是AndAlso顯示短路行為,如果AndAlso中的第一個表達式為False,則不計算第二個表達式。
Or:對兩個Boolean表達式執行邏輯或。
OrElse:與Or類似,關鍵差異是OrElse顯示短路行為,如果OrElse中的第一個表達式為True,則不計算第二個表達式。
此時才明白上面的代碼是兩個判斷都執行了,哪怕obj為Nothing時,obj.IsDisposed也會執行到,自然就會出現Null異常了,把Or改成OrElse后問題解決。
VB.net 與 C# 的對應
And 對應 &&
AndAlso 對應 &
Or 對應 ||
OrElse 對應 |