IsTrue — Operator (Visual Basic)

Określa, czy wyrażenie ma wartość True.

Nie można wywołać IsTrue jawnie kodu, ale kompilator języka Visual Basic może używać go do generowania kodu z OrElse klauzul. Jeśli zdefiniujesz klasę lub strukturę, a następnie użyjesz zmiennej tego typu w klauzuli OrElse , musisz zdefiniować IsTrue dla tej klasy lub struktury.

Kompilator traktuje IsTrue operatory i IsFalse jako dopasowaną parę. Oznacza to, że jeśli zdefiniujesz jedną z nich, musisz również zdefiniować drugą.

Użycie obiektu IsTrue przez kompilator

Po zdefiniowaniu klasy lub struktury można użyć zmiennej tego typu w Forinstrukcji , If, Else Iflub While w klauzuli When . Jeśli to zrobisz, kompilator wymaga operatora, który konwertuje typ na Boolean wartość, aby mógł przetestować warunek. Wyszukuje odpowiedni operator w następującej kolejności:

  1. Operator konwersji rozszerzającej z klasy lub struktury na Boolean.

  2. Operator konwersji rozszerzającej z klasy lub struktury na Boolean?.

  3. Operator IsTrue w klasie lub strukturze.

  4. Konwersja zawężająca do Boolean? elementu nie obejmuje konwersji z Boolean na Boolean?.

  5. Operator konwersji zawężającej z klasy lub struktury do Booleanklasy .

Jeśli nie zdefiniowano żadnej konwersji na Boolean operator lub IsTrue operatora, kompilator sygnalizuje błąd.

Uwaga

IsTrue Operator może być przeciążony, co oznacza, że klasa lub struktura może ponownie zdefiniować jego zachowanie, gdy operand ma typ tej klasy lub struktury. Jeśli kod używa tego operatora w takiej klasie lub strukturze, upewnij się, że rozumiesz jego ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.

Przykład

Poniższy przykład kodu definiuje konspekt struktury zawierającej definicje operatorów IsFalse i 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

Zobacz też