Mega Code Archive

 
Categories / VB.Net Tutorial / Class Module
 

Overriding the Equals Method

Public Class Point      Protected x As Integer    Protected y As Integer    Public Sub New (xValue As Integer, yValue As Integer)     Me.x = xValue     Me.y = yValue    End Sub    Public Overrides Overloads Function Equals(obj As Object) As Boolean       If obj Is Nothing OrElse Not Me.GetType() Is obj.GetType() Then          Return False       End If       Dim p As Point = CType(obj, Point)       Return Me.x = p.x And Me.y = p.y    End Function     Public Overrides Function GetHashCode() As Integer       Return x Xor y    End Function  End Class  Public Class Point3D    Inherits Point    Private z As Integer    Public Sub New (xValue As Integer, yValue As Integer, zValue As Integer)       MyBase.New(xValue, yValue)       Me.z = zValue    End Sub    Public Overrides Overloads Function Equals(obj As Object) As Boolean       Return MyBase.Equals(obj) And z = CType(obj, Point3D).z    End Function     Public Overrides Function GetHashCode() As Integer       Return MyBase.GetHashCode() Xor z    End Function  End Class