IsTrue-operator (Visual Basic)
Avgör om ett uttryck är True
.
Du kan inte anropa IsTrue
explicit i koden, men Visual Basic-kompilatorn kan använda den för att generera kod från OrElse
satser. Om du definierar en klass eller struktur och sedan använder en variabel av den typen i en OrElse
-sats måste du definiera IsTrue
för den klassen eller strukturen.
Kompilatorn betraktar operatorerna IsTrue
och som ett matchat parIsFalse
. Det innebär att om du definierar en av dem måste du också definiera den andra.
Kompilatoranvändning av IsTrue
När du har definierat en klass eller struktur kan du använda en variabel av den typen i en For
, If
, Else If
, eller While
-instruktion eller i en When
-sats. Om du gör detta kräver kompilatorn en operator som konverterar din typ till ett Boolean
värde så att den kan testa ett villkor. Den söker efter en lämplig operator i följande ordning:
En bredare konverteringsoperator från din klass eller struktur till
Boolean
.En bredare konverteringsoperator från din klass eller struktur till
Boolean?
.Operatorn
IsTrue
i din klass eller struktur.En begränsad konvertering till
Boolean?
som inte omfattar någon konvertering frånBoolean
tillBoolean?
.En begränsad konverteringsoperator från din klass eller struktur till
Boolean
.
Om du inte har definierat någon konvertering till Boolean
eller en IsTrue
operator signalerar kompilatorn ett fel.
Kommentar
Operatorn IsTrue
kan överbelastas, vilket innebär att en klass eller struktur kan omdefiniera sitt beteende när dess operande har den typen av klass eller struktur. Om din kod använder den här operatorn i en sådan klass eller struktur bör du se till att du förstår dess omdefinierade beteende. Mer information finns i Operatorprocedurer.
Exempel
I följande kodexempel definieras dispositionen av en struktur som innehåller definitioner för operatorerna IsFalse
och 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