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

Определяет, является Trueли выражение .

Вы не можете явно вызывать IsTrue код в коде, но компилятор Visual Basic может использовать его для создания кода из OrElse предложений. Если вы определяете класс или структуру, а затем используете переменную этого типа в OrElse предложении, необходимо определить IsTrue в этом классе или структуре.

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

Использование компилятора IsTrue

При определении класса или структуры можно использовать переменную этого типа в предложении, Else IfIfоператоре Forили While инструкцииWhen. При этом компилятору требуется оператор, который преобразует тип в Boolean значение, чтобы проверить условие. Он выполняет поиск подходящего оператора в следующем порядке:

  1. Расширяющий оператор преобразования из класса или структуры Booleanв .

  2. Расширяющий оператор преобразования из класса или структуры Boolean?в .

  3. Оператор IsTrue класса или структуры.

  4. Сужающее преобразование в Boolean? это не связано с преобразованием из Boolean?Boolean .

  5. Сужающий оператор преобразования из класса или структуры Booleanв .

Если вы не определили преобразование в Boolean оператор или IsTrue оператор, компилятор сигнализирует об ошибке.

Примечание.

Оператор IsTrue может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если его операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.

Пример

В следующем примере кода определяется структура структуры, которая включает определения для IsFalse операторов и IsTrue операторов.

Public Structure p
    Dim a As Double
    Public Shared Operator IsFalse(ByVal w As p) As Boolean
        Dim b As Boolean
        ' Insert code to calculate IsFalse of w.
        Return b
    End Operator
    Public Shared Operator IsTrue(ByVal w As p) As Boolean
        Dim b As Boolean
        ' Insert code to calculate IsTrue of w.
        Return b
    End Operator
End Structure

См. также