Оператор Or (Инклюзивная дизъюнкция)
 
Возвращает битовую OR (инклюзивная дизъюнкция) из двух числовых значений

Синтаксис

Declare Operator Or ( ByRef lhs As T1, ByRef rhs As T2 ) As Ret

Использование

result = lhs Or rhs

Параметры

lhs
Выражение слева.
T1
Любой числовой тип.
rhs
Выражение справа.
T2
Любой числовой тип.
Ret
Числовой тип (варьируется в зависимости от T1 и T2).

Возвращаемое значение

Возвращает битовое сложение двух операндов.

Описание

Этот оператор возвращает битовое сложение его операндов за счет логической операции, которая приводит значение с установленными битами в зависимости от битов операндов.

Таблица ниже демонстрирует все комбинации операции булевой дизъюнкции:

Lhs битRhs битРезультат
000
101
011
111


Короткая оценка не производится ,  оба выражения всегда оцениваются.

Тип возвращаемого значения зависит от типов переданных значений. Byte, UByte и тип с плавающей запятой сначала преобразуются в Integer. Если левый и правый типы отличаются только знаковостью, то тип возвращаемого значения совпадает с типом левого (T1), в противном случае, больший из двух типов возвращается.

Этот оператор может быть перегружен для пользовательских типов.

Пример

' Использование оператора OR для двух числовых значений
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 15 '00001111
numeric_value2 = 30 '00011110

'Результат =  31  =     00011111       
Print numeric_value1 Or numeric_value2
Sleep


' Использование оператора OR для двух условных выражений
Dim As UByte numeric_value
numeric_value = 10

If numeric_value = 5 Or numeric_value = 10 Then Print "Numeric_Value equals 5 or 10"
Sleep

' Это выведет "Numeric_Value equals 5 or 10" поскольку:
' хоть первое условие в операторе IF является false, но второе является true


Различия диалектов

  • В диалекте -lang qb, этот оператор не может быть перегружен.

Отличия от QB

  • Нет

См. также