次の方法で共有


方法: 2 つのオブジェクトが同一かどうかを判断する (Visual Basic)

Visual Basic では、ポインターが同じ場合、つまり両方の変数がメモリ内の同じクラス インスタンスを指している場合、2 つの変数参照は同一と見なされます。 たとえば、Windows フォーム アプリケーションでは、現在のインスタンス (Me) が特定のインスタンス ( Form2 など) と同じかどうかを判断する比較を行うことができます。

Visual Basic には、ポインターを比較する 2 つの演算子が用意されています。 Is 演算子は、オブジェクトが同一の場合はTrueを返し、等しくない場合は IsNot 演算子True返します。

2 つのオブジェクトが同一かどうかを判断する

2 つのオブジェクトが同一かどうかを判断するには

  1. 2 つのオブジェクトをテストする Boolean 式を設定します。

  2. テスト式で、2 つのオブジェクトをオペランドとして Is 演算子を使用します。

    Is は、オブジェクトが同じクラス インスタンスを指している場合に True を返します。

2 つのオブジェクトが同一でないかどうかを判断する

2 つのオブジェクトが同一ではなく、 NotIs ( If Not obj1 Is obj2など) を組み合わせるのが難しい場合に、アクションを実行したい場合があります。 このような場合は、 IsNot 演算子を使用できます。

2 つのオブジェクトが同一でないかどうかを判断するには

  1. 2 つのオブジェクトをテストする Boolean 式を設定します。

  2. テスト式で、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

こちらも参照ください