Dela via


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:

  1. En bredare konverteringsoperator från din klass eller struktur till Boolean.

  2. En bredare konverteringsoperator från din klass eller struktur till Boolean?.

  3. Operatorn IsTrue i din klass eller struktur.

  4. En begränsad konvertering till Boolean? som inte omfattar någon konvertering från Boolean till Boolean?.

  5. 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

Se även