Object.Equals Method (Object, Object)
Determines whether the specified object instances are considered equal.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Shared Function Equals ( _ objA As Object, _ objB As Object _ ) As Boolean
Parameters
- objA
- Type: System.Object
The first object to compare.
- objB
- Type: System.Object
The second object to compare.
Return Value
Type: System.Booleantrue if the objects are considered equal; otherwise, false. If both objA and objB are null, the method returns true.
The static Equals(Object, Object) method indicates whether two objects, objA and objB, are equal. It also enables you to test objects whose value is null for equality. It compares objA and objB for equality as follows:
It determines whether the two objects represent the same object reference. If they do, the method returns true. This test is equivalent to calling the ReferenceEquals method. In addition, if both objA and objB are null, the method returns true.
It determines whether either objA or objB is null. If so, it returns false.
If the two objects do not represent the same object reference and neither is null, it calls objA.Equals(objB) and returns the result. This means that if objA overrides the Object.Equals(Object) method, this override is called.
The following example illustrates the Equals(Object, Object) method and compares it with the ReferenceEquals method.
Module Example Public Sub Main() Dim m1 As New Dog("Alaskan Malamute") Dim m2 As New Dog("Alaskan Malamute") Dim g1 As New Dog("Great Pyrenees") Dim g2 As Dog = g1 Dim d1 As New Dog("Dalmation") Dim n1 As Dog = Nothing Dim n2 As Dog = Nothing Console.WriteLine("null = null: {0}", Object.Equals(n1, n2)) Console.WriteLine("null Reference Equals null: {0}", Object.ReferenceEquals(n1, n2)) Console.WriteLine() Console.WriteLine("{0} = {1}: {2}", g1, g2, Object.Equals(g1, g2)) Console.WriteLine("{0} Reference Equals {1}: {2}", g1, g2, Object.ReferenceEquals(g1, g2)) Console.WriteLine() Console.WriteLine("{0} = {1}: {2}", m1, m2, Object.Equals(m1, m2)) Console.WriteLine("{0} Reference Equals {1}: {2}", m1, m2, Object.ReferenceEquals(m1, m2)) Console.WriteLine() Console.WriteLine("{0} = {1}: {2}", m1, d1, Object.Equals(m1, d1)) Console.WriteLine("{0} Reference Equals {1}: {2}", m1, d1, Object.ReferenceEquals(m1, d1)) End Sub End Module Public Class Dog ' Public field. Public Breed As String ' Class constructor. Public Sub New(dogBreed As String) Me.Breed = dogBreed End Sub Public Overrides Function Equals(obj As Object) As Boolean If obj Is Nothing OrElse Not typeof obj Is Dog Then Return False Else Return Me.Breed = CType(obj, Dog).Breed End If End Function Public Overrides Function GetHashCode() As Integer Return Me.Breed.GetHashCode() End Function Public Overrides Function ToString() As String Return Me.Breed End Function End Class ' The example displays the following output: ' null = null: True ' null Reference Equals null: True ' ' Great Pyrenees = Great Pyrenees: True ' Great Pyrenees Reference Equals Great Pyrenees: True ' ' Alaskan Malamute = Alaskan Malamute: True ' Alaskan Malamute Reference Equals Alaskan Malamute: False ' ' Alaskan Malamute = Dalmation: False ' Alaskan Malamute Reference Equals Dalmation: False
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.