Delen via


IsTrue-operator (Visual Basic)

Bepaalt of een expressie is True.

U kunt uw code niet expliciet aanroepen IsTrue , maar de Visual Basic-compiler kan deze gebruiken om code te genereren op basis van OrElse componenten. Als u een klasse of structuur definieert en vervolgens een variabele van dat type in een OrElse component gebruikt, moet u deze klasse of structuur definiëren IsTrue .

De compiler beschouwt de IsTrue en IsFalse operators als een overeenkomend paar. Dit betekent dat als u een van deze definieert, u ook de andere moet definiëren.

Compilergebruik van IsTrue

Wanneer u een klasse of structuur hebt gedefinieerd, kunt u een variabele van dat type gebruiken in een For, If, Else Ifof While instructie of in een When component. Als u dit doet, vereist de compiler een operator waarmee uw type wordt geconverteerd naar een Boolean waarde, zodat deze een voorwaarde kan testen. Er wordt gezocht naar een geschikte operator in de volgende volgorde:

  1. Een verbreidingsoperator van uw klasse of structuur naar Boolean.

  2. Een verbreidingsoperator van uw klasse of structuur naar Boolean?.

  3. De IsTrue operator in uw klas of structuur.

  4. Een vermalende conversie naar Boolean? die geen conversie van Boolean naar Boolean?.

  5. Een narrowing conversieoperator van uw klasse of structuur naar Boolean.

Als u geen conversie naar Boolean of een IsTrue operator hebt gedefinieerd, geeft de compiler een fout aan.

Notitie

De IsTrue operator kan overbelast worden, wat betekent dat een klasse of structuur het gedrag ervan opnieuw kan definiëren wanneer de operand het type van die klasse of structuur heeft. Als uw code deze operator gebruikt voor een dergelijke klasse of structuur, moet u het opnieuw gedefinieerde gedrag ervan begrijpen. Zie Operator Procedures voor meer informatie.

Opmerking

In het volgende codevoorbeeld wordt het overzicht gedefinieerd van een structuur die definities voor de IsFalse en IsTrue operators bevat.

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

Zie ook