How to: Test Whether Two Objects Are the Same (Visual Basic)

If you have two variables that refer to objects, you can use either the Is or IsNot operator, or both, to determine whether they refer to the same instance.

To test whether two objects are the same

  • Use the Is Operator or the IsNot Operator with the two variables as operands.

    Public Sub processControl(ByVal f As System.Windows.Forms.Form, 
        ByVal c As System.Windows.Forms.Control)
        Dim active As System.Windows.Forms.Control = f.ActiveControl
        If (active IsNot Nothing) And (c Is active) Then
            ' Insert code to process control c
        End If
    End Sub

You might want to take a certain action depending on whether two objects refer to the same instance. The preceding example compares control c against the active control on form f. If there is no active control, or if there is one but it is not the same control instance as c, then the If statement fails and the procedure returns without further processing.

Whether you use Is or IsNot is a matter of personal convenience to you. One might be easier to read than the other in a given expression.

See also