Megosztás a következőn keresztül:


AndAlso operátor (Visual Basic)

Rövidzárolású logikai kötőszót hajt végre két kifejezésen.

Syntax

result = expression1 AndAlso expression2  

Részek

Időszak Definíció
result Szükséges. Bármilyen Boolean kifejezés. Az eredmény a Boolean két kifejezés összehasonlításának eredménye.
expression1 Szükséges. Bármilyen Boolean kifejezés.
expression2 Szükséges. Bármilyen Boolean kifejezés.

Megjegyzések

A logikai művelet rövidzárlatnak minősül, ha a lefordított kód megkerüli az egyik kifejezés kiértékelését egy másik kifejezés eredményétől függően. Ha az első kiértékelt kifejezés eredménye határozza meg a művelet végeredményét, nincs szükség a második kifejezés kiértékelésére, mert az nem módosíthatja a végeredményt. A rövidzárolás akkor javíthatja a teljesítményt, ha a megkerült kifejezés összetett, vagy ha eljáráshívásokkal jár.

Ha mindkét kifejezés kiértékelése az True, result akkor az .True Az alábbi táblázat a meghatározás módját result mutatja be.

Ha expression1 igen, És expression2 van Az érték a következő result :
True True True
True False False
False (nincs kiértékelve) False

Feljegyzés

Logikai összehasonlítás esetén az And operátor mindig mindkét kifejezést kiértékeli, ami magában foglalhatja az eljáráshívásokat is. Az AndAlso operátor rövidzárolást végez, ami azt jelenti, hogy ha expression1 igenFalse, akkor expression2 nem lesz kiértékelve.

Adattípusok

Az AndAlso operátor csak a logikai adattípushoz van definiálva. A Visual Basic szükség Boolean szerint átalakítja az egyes operandusokat a kifejezés kiértékelése előtt. Ha az eredményt numerikus típushoz rendeli, a Visual Basic átalakítja az eredményt az adott típusra Boolean , amely False így válik 0 és True válik belőle -1. További információ: Logikai típusú konverziók.

Túlterhelés

Az And operátor és az IsFalse operátor túlterhelhető, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálta a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. A túlterhelés és IsFalse az And operátorok túlterhelése befolyásolja az operátor viselkedésétAndAlso. Ha a kód túlterhelt AndIsFalseosztályt vagy struktúrát használAndAlso, ügyeljen arra, hogy megértse az újradefiniált viselkedésüket. További információ: Operátori eljárások.

1. példa

Az alábbi példa az AndAlso operátor használatával végez logikai kötőszót két kifejezésen. Az eredmény egy Boolean érték, amely azt jelzi, hogy a teljes összekapcsolt kifejezés igaz-e. Ha az első kifejezés, Falsea második nem lesz kiértékelve.

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

Az előző példa a , Falseés Falseaz , eredményét Trueadja eredményül. A számítás secondChecksorán a második kifejezés nem lesz kiértékelve, mert az első már False. A második kifejezés azonban kiértékelésre kerül a számítás thirdChecksorán.

2. példa

Az alábbi példa egy Function olyan eljárást mutat be, amely egy adott értéket keres egy tömb elemei között. Ha a tömb üres, vagy túllépte a tömb hosszát, az While utasítás nem teszteli a tömbelemet a keresési értéken.

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

Lásd még