确定表达式是否为 True
.
不能在代码中显式调用 IsTrue
,但 Visual Basic 编译器可以使用它从 OrElse
子句生成代码。 如果定义类或结构,然后在子句中使用 OrElse
该类型的变量,则必须在该类或结构上定义 IsTrue
。
编译器将 IsTrue
和 IsFalse
运算符视为 匹配对。 这意味着,如果定义其中一个,还必须定义另一个。
IsTrue 的编译器使用
定义类或结构后,可以在子While
If
Else If
句或子句中使用For
When
该类型的变量。 如果执行此作,编译器需要将类型转换为 Boolean
值的运算符,以便它可以测试条件。 它按以下顺序搜索合适的运算符:
将转换运算符从类或结构扩大为
Boolean
。将转换运算符从类或结构扩大为
Boolean?
。IsTrue
类或结构上的运算符。缩小到
Boolean?
该转换不涉及从中Boolean
转换到Boolean?
的转换。将转换运算符从类或结构缩小到
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