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:
Ein Erweiterungskonvertierungsoperator von Ihrer Klasse oder Struktur zu
Boolean
.Ein Erweiterungskonvertierungsoperator von Ihrer Klasse oder Struktur zu
Boolean?
.Der
IsTrue
-Operator für Ihre Klasse oder Struktur.Eine einschränkende Konvertierung zu
Boolean?
, die keine Konvertierung vonBoolean
zuBoolean?
beinhaltet.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