Freigeben über


IsTrue-Operator (Visual Basic)

Bestimmt, ob ein Ausdruck ist True.

Sie können den Code nicht explizit aufrufen IsTrue , aber der Visual Basic-Compiler kann ihn verwenden, um Code aus OrElse Klauseln zu generieren. Wenn Sie eine Klasse oder Struktur definieren und dann eine Variable dieses Typs in einer OrElse Klausel verwenden, müssen Sie diese Klasse oder Struktur definieren IsTrue .

Der Compiler betrachtet die IsTrue Operatoren und IsFalse Operatoren als übereinstimmenes Paar. Dies bedeutet, dass Sie, wenn Sie eine davon definieren, auch die andere definieren müssen.

Compilerverwendung von IsTrue

Wenn Sie eine Klasse oder Struktur definiert haben, können Sie eine Variable dieses Typs in einer For, If, , Else Ifoder Anweisung oder While in einer When Klausel verwenden. Wenn Sie dies tun, erfordert der Compiler einen Operator, der den Typ in einen Boolean Wert konvertiert, damit er eine Bedingung testen kann. Es sucht nach einem geeigneten Operator in der folgenden Reihenfolge:

  1. Ein Erweiterungskonvertierungsoperator von Ihrer Klasse oder Struktur auf Boolean.

  2. Ein Erweiterungskonvertierungsoperator von Ihrer Klasse oder Struktur auf Boolean?.

  3. Der IsTrue Operator für Ihre Klasse oder Struktur.

  4. Eine schmale Konvertierung, in Boolean? die keine Konvertierung von Boolean zu Boolean?.

  5. Ein schmaler Konvertierungsoperator von Der Klasse oder Struktur auf Boolean.

Wenn Sie keine Konvertierung in Boolean oder einen IsTrue Operator definiert haben, signalisiert der Compiler einen Fehler.

Hinweis

Der IsTrue Operator kann überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn der Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Ihr Code diesen Operator für eine solche Klasse oder Struktur verwendet, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.

Beispiel

Im folgenden Codebeispiel wird die Gliederung einer Struktur definiert, die Definitionen für die und IsTrue Operatoren IsFalse enthält.

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

Siehe auch