AndAlso İşleci (Visual Basic)

İki ifadede kısa devre mantıksal bağlayı gerçekleştirir.

Sözdizimi

result = expression1 AndAlso expression2  

Parça

Süre Tanım
result Gerekli. Herhangi bir Boolean ifade. Sonuç, Boolean iki ifadenin karşılaştırmasının sonucudur.
expression1 Gerekli. Herhangi bir Boolean ifade.
expression2 Gerekli. Herhangi bir Boolean ifade.

Açıklamalar

Derlenen kod başka bir ifadenin sonucuna bağlı olarak bir ifadenin değerlendirmesini atlayabilirse mantıksal işlemin kısa devre olduğu söylenir. değerlendirilen ilk ifadenin sonucu işlemin nihai sonucunu belirlerse, ikinci ifadeyi değerlendirmeye gerek yoktur, çünkü nihai sonucu değiştiremez. Atlanan ifade karmaşıksa veya yordam çağrıları içeriyorsa kısa devre performansı artırabilir.

her iki ifade de olarak değerlendirilirse True, result olur True. Aşağıdaki tabloda nasıl result belirlendiği gösterilmektedir.

Varsa expression1 Ve expression2 değeri result :
True True True
True False False
False (değerlendirilmedi) False

Not

Boole karşılaştırmasında And , işleç her zaman yordam çağrıları yapmayı da içerebilen her iki ifadeyi de değerlendirir. AndAlso İşleci kısa devre gerçekleştirir; başka bir deyişle , ise expression1Falseexpression2 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 işleneni Boolean gereken şekilde dönüştürür. Sonucu sayısal bir türe atarsanız, Visual Basic sonucu Boolean türünden False0 olur ve True olur -1gibi bir türe 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üklenebilir; başka bir deyişle, bir işlenen söz konusu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. ve IsFalse işleçlerinin aşırı yüklenmesi And işlecin davranışını AndAlso etkiler. Kodunuz ve IsFalseöğesini aşırı yükleyen And bir sınıf veya yapı kullanıyorsaAndAlso, yeniden tanımlanmış davranışlarını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.

Örnek 1

Aşağıdaki örnek, iki ifade üzerinde mantıksal bir bağlaç gerçekleştirmek için işlecini kullanır AndAlso . Sonuç, birleştirilmiş ifadenin tamamının doğru olup olmadığını gösteren bir Boolean değerdir. İlk ifade ise False, ikinci ifade 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 , Falseve Falsesonuçlarını Trueüretir. hesaplamasında secondCheck, birinci ifade zaten Falseolduğundan ikinci ifade değerlendirilmez. Ancak, ikinci ifade hesaplamasında thirdCheckdeğerlendirilir.

Örnek 2

Aşağıdaki örnekte, bir Function dizinin öğeleri arasında belirli bir değeri arayan bir yordam gösterilmektedir. Dizi boşsa veya dizi uzunluğu aşıldıysa, While deyimi dizi öğesini arama değeriyle test etmez.

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.