Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Определяет, является Trueли выражение .
Вы не можете явно вызывать IsTrue код в коде, но компилятор Visual Basic может использовать его для создания кода из OrElse предложений. Если вы определяете класс или структуру, а затем используете переменную этого типа в OrElse предложении, необходимо определить IsTrue в этом классе или структуре.
Компилятор рассматривает IsTrue операторы и IsFalse операторы как сопоставленную пару. Это означает, что при определении одного из них необходимо также определить другое.
Использование компилятора IsTrue
При определении класса или структуры можно использовать переменную этого типа в предложении, Else IfIfоператоре Forили While инструкцииWhen. При этом компилятору требуется оператор, который преобразует тип в Boolean значение, чтобы проверить условие. Он выполняет поиск подходящего оператора в следующем порядке:
Расширяющий оператор преобразования из класса или структуры
Booleanв .Расширяющий оператор преобразования из класса или структуры
Boolean?в .Оператор
IsTrueкласса или структуры.Сужающее преобразование в
Boolean?это не связано с преобразованием изBoolean?Boolean.Сужающий оператор преобразования из класса или структуры
Booleanв .
Если вы не определили преобразование в Boolean оператор или IsTrue оператор, компилятор сигнализирует об ошибке.
Замечание
Оператор IsTrue может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если его операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Дополнительные сведения см. в разделе "Процедуры операторов".
Пример
В следующем примере кода определяется структура структуры, которая включает определения для 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