IsTrue 运算符 (Visual Basic)

确定表达式是否为 True.

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

编译器将 IsTrue 和 IsFalse 运算符视为 匹配对。 这意味着,如果定义其中一个,还必须定义另一个。

IsTrue 的编译器使用

定义类或结构后,可以在子WhileIfElse If句或子句中使用ForWhen该类型的变量。 如果执行此作,编译器需要将类型转换为 Boolean 值的运算符,以便它可以测试条件。 它按以下顺序搜索合适的运算符:

  1. 将转换运算符从类或结构扩大为 Boolean。

  2. 将转换运算符从类或结构扩大为 Boolean?。

  3. IsTrue类或结构上的运算符。

  4. 缩小到 Boolean? 该转换不涉及从中 Boolean 转换到 Boolean?的转换。

  5. 将转换运算符从类或结构缩小到 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

另请参阅