– Khi sử dụng toán tử Or thì sẽ đánh giá cả 2 biểu thức điều kiện, trong khi đó toán tử OrElse chỉ cần biểu thức điều kiện thứ 1 là True thì phép ước lượng sẽ dừng lại. (Vì phép toán Or là True khi chỉ cần 1 trong 2 biểu thức điều kiện là True)
– Minh họa:
Module MinhHoangBlog Sub Main() ' Dim mystring As String = "Hello World" ' Khai báo và khởi tạo giá trị Dim mystring As String ' Khi không khởi tạo giá trị thì giá trị mặc định của kiểu String là Nothing ' Vì biến「mystring là Nothing」nên nếu dùng toán tử Or để check thì sẽ bị lỗi「System.NullReferenceException」 ' khi check đến biểu thức điều kiện thứ 2「mystring.Contains( "Hello" )」 If mystring Is Nothing Or mystring.Contains( "Hello" ) Then ' bla bla End If ' Còn nếu dùng toán tử OrElse thì biểu thức điều kiện thứ 1:「mystring Is Nothing AndAlso」là TRUE ' nên toàn bộ biểu thức so sánh của If là TRUE, do đó KHÔNG CHECK tiếp biểu thức điều kiện thứ 2 If mystring Is Nothing OrElse mystring.Contains( "Hello" ) Then Console.WriteLine( "Hello world" ) ' Output: Hello world Else ' bla bla End If Console.ReadKey() End Sub End Module
– Như vậy, chúng ta có thể thấy sử dụng toán tử OrElse sẽ an toàn và hiệu suất nhanh hơn toán tử Or. Tùy trường hợp cụ thể mà chúng ta sẽ áp dụng linh động sử dụng 2 toán tử này.
– Việc sử dụng toán tử OrElse(short-circuits) thì giống với toán tử || của ngôn ngữ C#