Udostępnij za pomocą


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 / Notatka

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 także