AndAlso İşleci (Visual Basic)

İki ifade üzerinde kısa devre mantıksal birliktelik gerçekleştirir.

Syntax

result = expression1 AndAlso expression2  

Bölümler

Süre Tanım
result Gereklidir. Herhangi Boolean bir ifade. Sonuç, iki Boolean ifadenin karşılaştırma sonucu olur.
expression1 Gereklidir. Herhangi Boolean bir ifade.
expression2 Gereklidir. Herhangi Boolean bir ifade.

Açıklamalar

Derlenmiş kod başka bir ifadenin sonuçlarına bağlı olarak bir ifadenin değerlendirilmesini atlarsa, mantıksal bir işlem kısa devre olarak ifade edilen bir işlemdir. Değerlendirilen ilk ifadenin sonucu, işlemi son sonucu belirlerse, son sonucu değiştiremeyecek olduğundan ikinci ifadeyi değerlendirmeye gerek yoktur. Kısa devre atlayan ifade karmaşıksa veya yordam çağrıları içeriyorsa performansı geliştirebilir.

her iki ifade de olarak True değerlendirilirse , result True olur. Aşağıdaki tabloda, nasıl belirlen result olduğu göstermektedir.

Şu expression1 ise: Ve expression2 şu şekildedir: değeri result şu şekildedir:
True True True
True False False
False (değerlendirilmedi) False

Not

Boole karşılaştırması için işleç her zaman her iki ifadeyi de değerlendirir ve bu And da yordam çağrıları yapma gibi olabilir. AndAlso İşleci, kısa devre gerçekleştirir; başka bir expression1 ifadeyle , ise False expression2 değerlendirilmez.

Veri Türleri

işleci AndAlso yalnızca Boole Veri Türü için tanımlanır. Visual Basic, ifadeyi değerlendirmeden önce her Boolean işleneni gereken şekilde dönüştürür. Sonucu sayısal bir türe atarsanız, Visual Basic olan ve haline gelen bu Boolean False türe 0 True -1 dönüştürür. Daha fazla bilgi için bkz. Boole Türü Dönüştürmeleri.

Aşırı Yükleme

And İşleci ve IsFalse İşleci aşırı yüklenmiş olabilir. Başka bir ifade, bir işlenen bu sınıf veya yapıya sahip olduğunda sınıf veya yapının davranışını yeniden tanımlandırabileceğiniz anlamına gelir. ve And IsFalse işleçlerinin aşırı yüklenmesi işlecinin davranışını AndAlso etkiler. Kodunuz ve AndAlso aşırı yüklerini olan bir sınıf veya yapıda kullanıyorsa, bunların yeniden And IsFalse tanımlanmamış davranışlarını anlayasınız. Daha fazla bilgi için bkz. İşleç Yordamları.

Örnek 1

Aşağıdaki örnek, iki AndAlso ifade üzerinde mantıksal bir birliktelik gerçekleştirmek için işleci kullanır. Sonuç, bir Boolean bire birli ifadenin tamamının true olup olmadığını temsil eden bir değerdir. İlk ifade False ise, ikinci değerlendirilmez.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b

Yukarıdaki örnek sırasıyla True , ve sonuçlarını False False üretir. hesaplaması secondCheck içinde, birinci zaten olduğundan ikinci ifade değerlendirilmez. False Ancak ikinci ifade, hesaplaması ile thirdCheck değerlendirilir.

Örnek 2

Aşağıdaki örnek, bir Function dizinin öğeleri arasında belirli bir değerin arama yaptığı bir yordamı gösterir. Dizi boşsa veya dizi uzunluğu aşıldı ise, deyimi dizi öğesini arama değerine While karşı sınamaz.

Public Function findValue(ByVal arr() As Double, 
    ByVal searchValue As Double) As Double
    Dim i As Integer = 0
    While i <= UBound(arr) AndAlso arr(i) <> searchValue
        ' If i is greater than UBound(arr), searchValue is not checked.
        i += 1
    End While
    If i > UBound(arr) Then i = -1
    Return i
End Function

Ayrıca bkz.