Mega Code Archive

 
Categories / VB.Net / Development
 

Create your own Equals method

Imports System Class Point     Inherits Object     Protected x, y As Integer     Public Sub New()          Me.x = 0         Me.y = 0     End Sub 'New     Public Sub New(ByVal X As Integer, ByVal Y As Integer)          Me.x = X         Me.y = Y     End Sub 'New     Public Overrides Function Equals(ByVal obj As Object) As Boolean          If obj Is Nothing OrElse Not [GetType]().Equals(obj.GetType()) Then             Return False         End If         Dim p As Point = CType(obj, Point)         Return x = p.x AndAlso y = p.y     End Function 'Equals     Public Overrides Function GetHashCode() As Integer          Return x ^ y     End Function 'GetHashCode End Class 'Point Class Point3D     Inherits Point     Private z As Integer     Public Sub New(ByVal X As Integer, ByVal Y As Integer, ByVal Z As Integer)          Me.x = X         Me.y = Y         Me.z = Z     End Sub 'New     Public Overrides Function Equals(ByVal obj As Object) As Boolean          Return MyBase.Equals(obj) AndAlso z = CType(obj, Point3D).z     End Function 'Equals     Public Overrides Function GetHashCode() As Integer          Return MyBase.GetHashCode() ^ z     End Function 'GetHashCode End Class 'Point3D Class [MyClass]     Public Shared Sub Main()          Dim point2D As New Point(5, 5)         Dim point3Da As New Point3D(5, 5, 2)         Dim point3Db As New Point3D(5, 5, 2)         If Not point2D.Equals(point3Da) Then             Console.WriteLine("point2D does not equal point3Da.")         End If         If Not point3Db.Equals(point2D) Then             Console.WriteLine("Likewise, point3Db does not equal point2D.")         End If         If point3Da.Equals(point3Db) Then             Console.WriteLine("However, point3Da equals point3Db.")         End If     End Sub 'Main  End Class '[MyClass]