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