IsTrue-Operator (Visual Basic)

Bestimmt, ob ein Ausdruck True ist.

Sie können IsTrue im Code nicht explizit aufrufen, aber der Visual Basic-Compiler kann diesen Operator 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 IsTrue für diese Klasse oder Struktur definieren.

Der Compiler sieht die IsTrue- und IsFalse-Operatoren als zusammengehöriges Paar an. Deshalb müssen Sie, wenn Sie einen dieser Operatoren definieren, auch den anderen Operator definieren.

Compilerverwendung von „IsTrue“

Wenn Sie eine Klasse oder Struktur definiert haben, können Sie eine Variable dieses Typs in einer For-, If-, Else If- oder While-Anweisung oder in einer When-Klausel verwenden. Wenn Sie dies tun, benötigt der Compiler einen Operator, der Ihren Typ in einen Boolean-Wert konvertiert, damit er eine Bedingung testen kann. Dabei wird in folgender Reihenfolge nach einem geeigneten Operator gesucht:

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

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

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

  4. Eine einschränkende Konvertierung zu Boolean?, die keine Konvertierung von Boolean zu Boolean? beinhaltet.

  5. Ein Einschränkungskonvertierungsoperator von Ihrer Klasse oder Struktur zu Boolean.

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

Hinweis

Der IsTrue-Operator kann überladen werden. Dies bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ihr 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 Operator Procedures.

Beispiel

Im folgenden Codebeispiel wird die Gliederung einer Struktur definiert, die Definitionen für die IsFalse- und IsTrue-Operatoren 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