Operatore IsTrue (Visual Basic)

Determina se un'espressione è True.

Non è possibile chiamare IsTrue in modo esplicito nel codice, ma il compilatore di Visual Basic può usarlo per generare codice da clausole OrElse. Se si definisce una classe o una struttura e quindi si usa una variabile di tale tipo in una clausola OrElse, è necessario definire IsTrue in tale classe o struttura.

Il compilatore considera gli operatori IsTrue e IsFalse come coppia abbinata. Ciò significa che, se ne si definisce una, è necessario definire anche l'altra.

Uso del compilatore di IsTrue

Dopo aver definito una classe o una struttura, è possibile usare una variabile di tale tipo in un'istruzione For, If, Else If o While in una clausola When. In questo caso, il compilatore richiede un operatore che converte il tipo in un valore Boolean in modo che possa testare una condizione. Cerca un operatore appropriato nell'ordine seguente:

  1. Operatore di conversione che supporta un maggior numero di dati dalla classe o dalla struttura in Boolean.

  2. Operatore di conversione che supporta un maggior numero di dati dalla classe o dalla struttura in Boolean?.

  3. L'operatore IsTrue nella classe o nella struttura.

  4. Conversione che supporta un minor numero di dati in Boolean? che non comporta una conversione da Boolean a Boolean?.

  5. Operatore di conversione che supporta un minor numero di dati dalla classe o dalla struttura in Boolean.

Se non è stata definita alcuna conversione in Boolean o un operatore IsTrue, il compilatore segnala un errore.

Nota

L'operatore IsTrue può essere sottoposto a overload, il che significa che una classe o una struttura può ridefinirne il comportamento quando il suo operando ha il tipo di tale classe o struttura. Se il codice usa questo operatore in una classe o una struttura di questo tipo, assicurarsi di comprenderne il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.

Esempio

Nell'esempio di codice seguente viene definita la struttura che include le definizioni per gli operatori IsFalse e 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

Vedi anche