Operador IsTrue (Visual Basic)
Determina se uma expressão é True
.
Você não pode chamar IsTrue
explicitamente em seu código, mas o compilador do Visual Basic pode usá-lo para gerar código a partir de OrElse
cláusulas. Se você definir uma classe ou estrutura e, em seguida, usar uma variável desse tipo em uma OrElse
cláusula, deverá definir IsTrue
essa classe ou estrutura.
O compilador considera os IsTrue
operadores e IsFalse
como um par correspondente. Isso significa que, se você definir um deles, você também deve definir o outro.
Uso do compilador de IsTrue
Quando tiver definido uma classe ou estrutura, você poderá usar uma variável desse tipo em uma For
instrução , , If
Else If
, ou While
em uma When
cláusula. Se você fizer isso, o compilador exigirá um operador que converta seu tipo em um Boolean
valor para que ele possa testar uma condição. Procura um operador adequado pela seguinte ordem:
Um operador de conversão de expansão de sua classe ou estrutura para
Boolean
.Um operador de conversão de expansão de sua classe ou estrutura para
Boolean?
.O
IsTrue
operador da sua classe ou estrutura.Uma conversão de estreitamento para
Boolean?
isso não envolve uma conversão deBoolean
paraBoolean?
.Um operador de conversão de estreitamento de sua classe ou estrutura para
Boolean
.
Se você não definiu nenhuma conversão para Boolean
ou um IsTrue
operador, o compilador sinaliza um erro.
Nota
O IsTrue
operador pode estar sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando seu operando tem o tipo dessa classe ou estrutura. Se o seu código usa esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador.
Exemplo
O exemplo de código a seguir define a estrutura de tópicos de uma estrutura que inclui definições para os IsFalse
operadores 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