IsTrue 运算符

更新:2007 年 11 月

确定一个表达式是否为 True。

您不能在代码中显式调用 IsTrue,但 Visual Basic 编译器可以使用它从 OrElse 子句生成代码。如果先定义一个类或结构,然后在 OrElse 子句中使用该类型的一个变量,则必须在此类或结构中定义 IsTrue。

编译器将 IsTrue 和 IsFalse 运算符当作匹配对。这意味着如果定义了它们之中的一个,那么还必须定义另一个。

IsTrue 的编译器运用

如果定义了一个类或结构,则可以在 For、If、ElseIf 或 While 语句或者 When 子句中使用此类型的变量。如果执行此操作,编译器需要使用一个将此类型转换为 Boolean 值的运算符,以便可以测试条件。编译器将按以下顺序搜索合适的运算符:

  1. 类或结构中可扩大为 Boolean 的扩大转换运算符。

  2. 类或结构中的 IsTrue 运算符。

  3. 类或结构中可收缩为 Boolean 的收缩转换运算符。

如果尚未将任何转换定义到 Boolean 或 IsTrue 运算符,编译器将发出错误信号。

说明:

IsTrue 运算符可以被重载,这意味着当该运算符的操作数具有某个类或结构的类型时,该类或结构可以重新定义其行为。如果代码在这样的类或结构上使用此运算符,那么您一定要了解其重新定义的行为。有关更多信息,请参见运算符过程

示例

下面的代码示例定义一个结构的大致形式,此结构包含 IsFalse 和 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

请参见

任务

如何:定义运算符

参考

IsFalse 运算符

OrElse 运算符