AndAlso :
如果 AndAlso 運算式中的第一個運算式評估為 False,則不會評估第二個運算式,因為它無法變更最終結果,而且 AndAlso 會傳回 False。
OrElse :
執行最少運算 (Short Circuit) 的邏輯分離,如果 OrElse 運算式中的第一個運算式評估為 True,則不會評估第二個運算式,因為它無法變更最終結果,而且 OrElse 會傳回 True。
參考來源 : MSDN Library (繁體中文) , Visual Basic 2003~2005開發秘訣與範例大全 (書)
1 . 開發環境 :
VS2005 + .net 2.0 + XP SP3
2 . 定義 :
AndAlso 運算子 :
如果 AndAlso 運算式中的第一個運算式評估為 False,則不會評估第二個運算式,因為它無法變更最終結果,而且 AndAlso 會傳回 False。
OrElse 運算子 :
執行最少運算 (Short Circuit) 的邏輯分離,如果 OrElse 運算式中的第一個運算式評估為 True,則不會評估第二個運算式,因為它無法變更最終結果,而且 OrElse 會傳回 True。
補充 : 最少運算 (Short-Circuiting),引用簡述 Visual Basic 2003~2005開發秘訣與範例大全
在書中稱為 [ 最短路徑 ] ,就是當第一個評量運算式的結果已經能夠決定運算的最終結果時,就不會再去評量其他的運算式,
因此可以避免掉額外且不需要的評量作業,尤其是當所略過的是複雜或內含程序呼叫的運算式時,......
3 . 資料型別 :
AndAlso 運算子 :
只針對 Boolean 資料型別 (Visual Basic) 定義。Visual Basic 會在必要時將每個運算元轉換成 Boolean,並且完全以 Boolean 執行運算。
若將結果指派給數字型別,Visual Basic 就會將它從 Boolean 轉換成該型別。
OrElse 運算子 :
只針對 Boolean 資料型別 (Visual Basic) 定義。Visual Basic 會在必要時將每個運算元轉換成 Boolean,並且完全以 Boolean 執行運算。
若將結果指派給數字型別,Visual Basic 則會將它從 Boolean 轉換成該型別。
補充 : AndAlso 運算子的其中一個作用是先測試物件執行個體是否存在,再嘗試存取其中一個成員。
參考連結網址 :
AndAlso 運算子
http://msdn.microsoft.com/zh-tw/library/cb8x3kfz(v=vs.80).aspx
OrElse 運算子
http://msdn.microsoft.com/zh-tw/library/ea1sssb2(v=vs.80).aspx
====================================================
有些事就該把它當作一種回憶...