方法 : 2 つのオブジェクトが同一であるかどうか判別する
更新 : 2007 年 11 月
Visual Basic では、ポインタが同一である場合、つまり双方の変数がメモリ内で同一のクラス インスタンスを指している場合は 2 つのオブジェクトは同一であると見なします。たとえば、現在のインスタンス (Me) が Form2 などの特定のインスタンスと同一であるかどうかを判別する際に、この比較を用いることができます。
Visual Basic には、ポインタを比較する 2 つの演算子が用意されています。Is 演算子 (Visual Basic) では、オブジェクトが同じである場合 True が返されます。IsNot 演算子 では、オブジェクトが異なる場合 True が返されます。
2 つのオブジェクトが同じであるかどうかの確認
2 つのオブジェクトが同じであるかどうかを確認するには
Boolean 式を設定して 2 つのオブジェクトをテストします。
テストを実行する式では、2 つのオブジェクトにオペランドとして Is 演算子を使用します。
Is は、両方のオブジェクトが同じクラス インスタンスを指している場合 True を返します。
2 つのオブジェクトが同一でないかかどうかの確認
2 つのオブジェクトが同一でないかどうかを確認する場合があります。しかし、If Not obj1 Is obj2 のように Not と Is を組み合わせて使用するのは大変面倒なことです。このような場合に、IsNot 演算子を使用できます。
2 つのオブジェクトが同一でないかどうかを確認するには
Boolean 式を設定して 2 つのオブジェクトをテストします。
テストを実行する式では、2 つのオブジェクトにオペランドとして IsNot 演算子を使用します。
IsNot は、両方のオブジェクトが同じクラス インスタンスを指していない場合に True を返します。
使用例
1 組の Object 変数が同じクラス インスタンスを指しているかどうかをテストする例を、次に示します。
Dim objA, objB, objC as Object
objA = Me
objB = New System.Windows.Forms.Form()
objC = Me
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
参照
処理手順
方法 : 2 つのオブジェクトが関連しているかどうかを決める