OrElse Operátor (Visual Basic)
Két kifejezésen rövidzárolású, inkluzív logikai tiltást hajt végre.
Syntax
result = expression1 OrElse expression2
Részek
result
Szükséges. Bármilyen Boolean
kifejezés.
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 bármelyik vagy mindkét kifejezés ki van értékelveTrue
, result
akkor az a .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 |
(nincs kiértékelve) | True |
False |
True |
True |
False |
False |
False |
Adattípusok
Az OrElse
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 Or operátor és az IsTrue 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 IsTrue
az Or
operátorok túlterhelése befolyásolja az operátor viselkedésétOrElse
. Ha a kód túlterhelt Or
IsTrue
osztályt vagy struktúrát használOrElse
, ü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 operátort OrElse
használja két kifejezés logikai tiltására. Az eredmény egy Boolean
érték, amely azt jelzi, hogy a két kifejezés bármelyike igaz-e. Ha az első kifejezés, True
a 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
Az előző példa az , True
és False
a megfelelő eredményt True
adja eredményül. A számítás firstCheck
során a második kifejezés nem lesz kiértékelve, mert az első már True
. A második kifejezés azonban kiértékelésre kerül a számítás secondCheck
során.
2. példa
Az alábbi példa egy ...Then
utasítást If
mutat be, amely két eljáráshívást tartalmaz. Ha az első hívás visszatér True
, a második eljárás nem lesz meghívva. Ez váratlan eredményeket eredményezhet, ha a második eljárás olyan fontos feladatokat hajt végre, amelyeket mindig el kell végezni a kód ezen szakaszának futtatásakor.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If