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