OrElse – operátor (Visual Basic)
Provádí zkratování inkluzivní logické disjunkce u dvou výrazů.
Syntaxe
result = expression1 OrElse expression2
Součástky
result
Povinný: Libovolný Boolean
výraz.
expression1
Povinný: Libovolný Boolean
výraz.
expression2
Povinný: Libovolný Boolean
výraz.
Poznámky
Logická operace se říká, že je zkratka , pokud zkompilovaný kód může obejít vyhodnocení jednoho výrazu v závislosti na výsledku jiného výrazu. Pokud výsledek prvního vyhodnoceného výrazu určuje konečný výsledek operace, není nutné vyhodnotit druhý výraz, protože nemůže změnit konečný výsledek. Zkratování může zlepšit výkon, pokud je vynechaný výraz složitý nebo pokud zahrnuje volání procedur.
Pokud se výrazy nebo oba výrazy vyhodnotí jako True
, result
je True
. Následující tabulka ukazuje, jak result
je určeno.
Pokud expression1 je |
A expression2 je |
Hodnota result je |
---|---|---|
True |
(nevyhodnocené) | True |
False |
True |
True |
False |
False |
False |
Typy dat
Operátor OrElse
je definován pouze pro logický datový typ. Jazyk Visual Basic převede každý operand podle potřeby na Boolean
před vyhodnocením výrazu. Pokud přiřadíte výsledek číselnému typu, jazyk Visual Basic ho převede na Boolean
tento typ, který False
se stane 0
a True
stane se -1
z něj .
Další informace naleznete v tématu Logické převody typů.
Přetížení
Operátor Or a IsTrue – operátor mohou být přetíženy, což znamená, že třída nebo struktura mohou předefinovat jejich chování, pokud má operand typ této třídy nebo struktury. Or
Přetížení operátorů a IsTrue
operátorů ovlivňuje chování operátoruOrElse
. Pokud váš kód používá OrElse
ve třídě nebo struktuře, která přetížení Or
, a IsTrue
nezapomeňte pochopit jejich předdefinované chování. Další informace naleznete v tématu Procedury operátoru.
Příklad 1
Následující příklad používá OrElse
operátor k provedení logické disjunkce u dvou výrazů. Výsledkem je Boolean
hodnota, která představuje, zda je některý z těchto dvou výrazů pravdivý. Pokud je True
první výraz , druhý se nevyhodnocuje.
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
Předchozí příklad vytvoří výsledky True
, True
a False
v uvedeném pořadí. Při výpočtu firstCheck
se druhý výraz nevyhodnocuje, protože první je již True
. Druhý výraz se však vyhodnocuje ve výpočtu výrazu secondCheck
.
Příklad 2
Následující příklad ukazuje If
příkaz ...Then
obsahující dvě volání procedur. Pokud první volání vrátí True
, druhá procedura není volána. To může vést k neočekávaným výsledkům, pokud druhý postup provádí důležité úlohy, které by se měly vždy provést při spuštění této části kódu.
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