IsTrue 运算符 (Visual Basic)
确定表达式是否为 True
。
不能在代码中显式调用 IsTrue
,但 Visual Basic 编译器可以使用它从 OrElse
子句生成代码。 如果定义类或结构,然后在 OrElse
子句中使用该类型的变量,则必须对该类或结构上的 IsTrue
进行定义。
编译器将 IsTrue
和 IsFalse
运算符视为 匹配的运算符。 这意味着,如果定义其中一个,则还必须定义另一个。
IsTrue 的编译器使用
定义类或结构后,可以在 For
、If
、Else If
或 While
语句或 When
子句中使用该类型的变量。 如果这样做,编译器需要一个运算符,该运算符将类型转换为值 Boolean
,以便它可以测试条件。 它按以下顺序搜索合适的运算符:
从类或结构到
Boolean
的扩大转换运算符。从类或结构到
Boolean?
的扩大转换运算符。类 或结构上的
IsTrue
运算符。到
Boolean?
的收缩转换不涉及从Boolean
到Boolean?
的转换。从类或结构到
Boolean
的扩大转换运算符。
如果尚未定义到 Boolean
或 IsTrue
运算符的任何转换,编译器会发出错误信号。
注意
IsTrue
运算符可以重载,这意味着当操作数具有某一类或结构的类型时,该类或结构可以重新定义其行为。 如果你的代码在这种类或结构上使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 Operator Procedures。
示例
下面的代码示例定义了结构大纲,该结构包括 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