Skip to content

IsNot

用于比较两个对象引用的非同一性。Is 运算符的逻辑逆运算。

语法:

result = object1 IsNot object2

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

如果 object1object2 引用不同的对象(或其中一个为 Nothing 而另一个不是),resultTrue;如果它们引用同一对象,resultFalse。与 Is 一样,比较的是引用本身,不是对象内部的值。

INFO

IsNot 是twinBASIC扩展。经典VBA没有 IsNot 运算符;等价写法为 Not (a Is b)

最常见的用途是测试对象引用是否已赋值:

vb
If MyObject IsNot Nothing Then
    ' Use MyObject.
End If

这比等价的 If Not (MyObject Is Nothing) Then 或更旧的 If (MyObject Is Nothing) = False Then 更自然。

示例

vb
Dim A As Object, B As Object, C As Object
Set A = New Collection
Set B = A          ' B refers to the same object as A.
Set C = New Collection

Debug.Print A IsNot B    ' False - same object.
Debug.Print A IsNot C    ' True  - different objects.
Debug.Print A IsNot Nothing    ' True  - A is assigned.

Set A = Nothing
Debug.Print A IsNot Nothing    ' False - A is now unassigned.

另请参阅

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