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

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

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

2 つのオブジェクトが同じであるかどうかの確認

2 つのオブジェクトが同じであるかどうかを確認するには

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

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

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

2 つのオブジェクトが同一でないかどうかの確認

2 つのオブジェクトが同一でないかどうかを確認する場合があります。しかし、If Not obj1 Is obj2 のように Not と Is を組み合わせて使用するのは大変面倒なことです。 このような場合に、IsNot 演算子を使用できます。

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

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

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

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

使用例

1 組の 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

参照

処理手順

方法: 2 つのオブジェクトが関連しているかどうかを判別する (Visual Basic)

関連項目

オブジェクト型 (Object)

Is 演算子 (Visual Basic)

IsNot 演算子 (Visual Basic)

概念

Visual Basic におけるオブジェクト変数

オブジェクト変数の値 (Visual Basic)

Visual Basic における Me、My、MyBase、MyClass