OrElse – operátor (Visual Basic)
Provádí krátkodobou inkluzivní logickou disjunkci u dvou výrazů.
Syntax
result = expression1 OrElse expression2
Součásti
result
Povinná hodnota. Libovolný Boolean výraz.
expression1
Povinná hodnota. Libovolný Boolean výraz.
expression2
Povinná hodnota. Libovolný Boolean výraz.
Poznámky
Logická operace je zkrácená, 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é výrazu určuje konečný výsledek operace, není nutné vyhodnocovat druhý výraz, protože nemůže změnit konečný výsledek. Zkrácené zapojení může zlepšit výkon, pokud je obcházení výrazu složité nebo zahrnuje volání procedur.
Pokud se jeden nebo oba výrazy vyhodnotí jako True , result je True . Následující tabulka ukazuje, jak result se určí.
Pokud expression1 je |
A expression2 je |
Hodnota result je . |
|---|---|---|
True |
(nevyhodnocuje se) | True |
False |
True |
True |
False |
False |
False |
Typy dat
Operátor OrElse je definovaný pouze pro logický datový typ. Visual Basic před vyhodnocením výrazu převede každý operand podle potřeby Boolean na . Pokud výsledek přiřadíte číselného typu, Visual Basic ho z na tento typ, který se stane a Boolean False stane se 0 True -1 .
Další informace najdete v tématu Převody logických typů.
Přetížení
Operátor Or a operátor IsTrue mohou být přetíženy, což znamená, že třída nebo struktura mohou předefinovat své chování, pokud má operand typ této třídy nebo struktury. Přetížení Or operátorů IsTrue a ovlivňuje chování OrElse operátoru. Pokud váš kód používá třídu nebo strukturu, která přetěžuje a , ujistěte se, že rozumíte jejich OrElse Or IsTrue předdefinované chování. Další informace najdete v tématu Procedury operátora.
Příklad 1
Následující příklad používá operátor OrElse k logickému disjunkci u dvou výrazů. Výsledkem je Boolean hodnota, která představuje, zda je některý ze dvou výrazů pravdivý. Pokud je první výraz True , druhý výraz se nevyhodnotí.
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 v uvedeném False pořadí. Při výpočtu firstCheck se druhý výraz nevyhodnocuje, protože první už je True . Druhý výraz se ale vyhodnotí ve výpočtu secondCheck .
Příklad 2
Následující příklad ukazuje příkaz If ... obsahující dvě volání Then procedur. Pokud první volání vrátí True , druhá procedura není volána. To by mohlo způsobit neočekávané výsledky, pokud druhý postup provádí důležité úlohy, které by se měly provést vždy 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