Visual Basic では、ポインターが同じ場合、つまり両方の変数がメモリ内の同じクラス インスタンスを指している場合、2 つの変数参照は同一と見なされます。 たとえば、Windows フォーム アプリケーションでは、現在のインスタンス (Me
) が特定のインスタンス ( Form2
など) と同じかどうかを判断する比較を行うことができます。
Visual Basic には、ポインターを比較する 2 つの演算子が用意されています。
Is 演算子は、オブジェクトが同一の場合はTrue
を返し、等しくない場合は IsNot 演算子はTrue
返します。
2 つのオブジェクトが同一かどうかを判断する
2 つのオブジェクトが同一かどうかを判断するには
2 つのオブジェクトをテストする
Boolean
式を設定します。テスト式で、2 つのオブジェクトをオペランドとして
Is
演算子を使用します。Is
は、オブジェクトが同じクラス インスタンスを指している場合にTrue
を返します。
2 つのオブジェクトが同一でないかどうかを判断する
2 つのオブジェクトが同一ではなく、 Not
と Is
( If Not obj1 Is obj2
など) を組み合わせるのが難しい場合に、アクションを実行したい場合があります。 このような場合は、 IsNot
演算子を使用できます。
2 つのオブジェクトが同一でないかどうかを判断するには
2 つのオブジェクトをテストする
Boolean
式を設定します。テスト式で、2 つのオブジェクトをオペランドとして
IsNot
演算子を使用します。IsNot
は、オブジェクトが同じクラス インスタンスを指していない場合にTrue
を返します。
例
次の例では、 Object
変数のペアをテストして、同じクラス インスタンスを指しているかどうかを確認します。
Dim objA, objB, objC As Object
objA = My.User
objB = New ApplicationServices.User
objC = My.User
MsgBox("objA different from objB? " & CStr(objA IsNot objB))
MsgBox("objA identical to objC? " & CStr(objA Is objC))
前の例では、次の出力が表示されます。
objA different from objB? True
objA identical to objC? True
こちらも参照ください
.NET