Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Rövidzárolású logikai kötőszót hajt végre két kifejezésen.
Szemantika
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 |
Megjegyzé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átorrövidzárolást végez, ami azt jelenti, hogy ha expression1 igen False, 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átortú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