Lập trình VB.Net

Sự khác nhau giữa And và AndAlso là gì ?

Sự khác nhau giữa And và AndAlso là gì ?
Được viết bởi Minh Hoàng

Series lập trình VB.NET, ngôn ngữ lập trình hướng đối tượng .NET Framework

– 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#

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi! Minh Hoàng Blog | Nào cùng vui hehe


Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp người đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[…]

Bình luận của bạn

Be the First to Comment!

avatar
wpDiscuz
Chúc bạn có một cuộc sống ngoại hạng!