Skip to content

Is

用于比较两个对象引用的同一性。

语法:

result = object1 Is object2

result
任意 Boolean 或数值变量。
object1, object2
任意对象引用。

如果 object1object2 引用同一对象,resultTrue;否则 resultFalseIs 不比较对象内部的值——它比较两个引用是否指向同一实例。

可以通过多种方式使两个变量引用同一对象。以下示例中,A 被设置为引用与 B 相同的对象:

vb
Set A = B

以下示例使 A 和 B 引用与 C 相同的对象:

vb
Set A = C
Set B = C

将引用与 Nothing 进行 Is 比较可判断引用是否未赋值:

vb
If MyObject Is Nothing Then
    Debug.Print "MyObject has not been assigned."
End If

对于同一性测试的否定,twinBASIC还提供了 IsNot 运算符:If MyObject IsNot Nothing ThenIf Not (MyObject Is Nothing) Then 更自然。

INFO

Is 关键字在语言中还有两个不相关的用途:

  • If...Then...Else 条件中 TypeOf objectname Is objecttype 形式下,Is 引入运行时类型测试。
  • Select Case 子句中 Is comparisonoperator expression 形式下,Is 引入与 Select Case 测试表达式的比较。

在这两种构造中,周围语句提供了含义;那里 Is 不是本页描述的对象同一性运算符。

示例

本示例使用 Is 运算符比较两个对象引用。

vb
Dim MyObject, YourObject, ThisObject, OtherObject, ThatObject, MyCheck
Set YourObject = MyObject    ' Assign object references.
Set ThisObject = MyObject
Set ThatObject = OtherObject
MyCheck = YourObject Is ThisObject    ' Returns True.
MyCheck = ThatObject Is ThisObject    ' Returns False.
' Assume MyObject <> OtherObject.
MyCheck = MyObject Is ThatObject    ' Returns False.

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有