Экспорт (0) Печать
Развернуть все
Развернуть Свернуть
Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

Оператор AndAlso (Visual Basic)

Выполняет упрощенную операцию логического умножения над двумя выражениями.

result = expression1 AndAlso expression2

Термин

Определение

result

Обязательный. Произвольное выражение типа Boolean. При сравнении двух выражений будет получен результат типа Boolean.

expression1

Обязательный. Произвольное выражение типа Boolean.

expression2

Обязательный. Произвольное выражение типа Boolean.

Логическая операция называется сокращенной, если компилируемый код может пропустить оценку одного выражения, зависящего от результата другого выражения. Если результат первого оцененного выражения определяет конечный результат операции, то отсутствует необходимость оценивать второе выражение, так как это не повлияет на конечный результат. Сокращенное вычисление улучшает производительность, если пропущенное выражение является сложным или содержит вызовы процедур.

Если оба выражения определяются значением True, то результат result имеет значение True. В следующей таблице показан порядок определения результата result.

Если expression1 имеет значение

И выражение expression2 имеет значение

значение result будет следующим:

True

True

True

True

False

False

False

(не вычисляется)

False

Типы данных

Оператор AndAlso определен только для типа данных Boolean (Тип данных Boolean (Visual Basic)). В Visual Basic каждый операнд при необходимости преобразуется в тип Boolean, после чего операция полностью выполняется с использованием типа Boolean. Если результату назначить числовой тип, Visual Basic преобразует его из типа Boolean в этот тип. Это может привести к непредвиденному поведению. Например, результат операции 5 AndAlso 12 равен –1, если преобразуется в тип Integer.

Перегрузка

Оператор Оператор And (Visual Basic) и Оператор IsFalse (Visual Basic) может быть перегруженным. Это означает, что класс или структура может переопределить его поведение, если операнд имеет тип класса или структуры. Перегрузка операторовAnd и IsFalse влияет на поведение оператора AndAlso. Если в коде используется оператор AndAlso для класса или структуры, которая перегружает And и IsFalse, убедитесь, что вы понимаете его переопределенное поведение. Дополнительные сведения см. в разделе Процедуры операторов (Visual Basic).

В данном примере оператор AndAlso используется для выполнения логического умножения двух выражений. Результат представляет собой значение Boolean, которое показывает, что объединенное выражение истинно. Если первое выражение является False, второе выражение не оценивается.


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


В предыдущем примере получаются результаты True, False и False, соответственно. При вычислении secondCheck второе выражение не вычисляется, поскольку первое значение уже равно False. Тем не менее, второе выражение определяется при вычислении thirdCheck.

В следующем примере процедура Function выполняет поиск заданного значения среди элементов массива. Если массив пуст или превышена длина массива, оператор While не проверяет элементы массива на значение поиска.


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


Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft