Compartilhar via


Operador IsTrue (Visual Basic)

Determina se uma expressão é True.

Você não pode chamar IsTrue explicitamente no código, mas o compilador do Visual Basic pode usá-lo para gerar código usando cláusulas OrElse. Se você definir uma classe ou estrutura e usar uma variável desse tipo em uma cláusula OrElse, deverá definir IsTrue nessa classe ou estrutura.

O compilador considera os operadores IsTrue e IsFalse como um par correspondente. Isso significa que, se você definir um deles, também será necessário definir o outro.

Uso do Compilador do IsTrue

Ao definir uma classe ou estrutura, você pode usar uma variável desse tipo em uma instrução For, If, Else If ou While ou em uma cláusula When. Se você fizer isso, o compilador exigirá um operador que converta o tipo em um valor Boolean para que ele possa testar uma condição. Ele procura um operador adequado na seguinte ordem:

  1. Um operador de conversão de expansão da classe ou da estrutura para Boolean.

  2. Um operador de conversão de expansão da classe ou da estrutura para Boolean?.

  3. O operador IsTrue na classe ou na estrutura.

  4. Uma conversão de restrição para Boolean? que não envolve uma conversão de Boolean para Boolean?.

  5. Um operador de conversão de restrição da classe ou da estrutura para Boolean.

Se você não definiu nenhuma conversão para Boolean ou um operador IsTrue, o compilador sinaliza um erro.

Observação

O operador IsTrue pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir o respectivo comportamento quando seu operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em uma classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, confira Procedimentos de operador.

Exemplo

O exemplo de código a seguir define o contorno de uma estrutura que inclui definições para os operadores 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

Confira também