Class Module VB.Net Tutorial

Imports System
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 
Class Rectangle
   Private a, b As Point
   
   Public Overrides Overloads Function Equals(obj As [Object]) As Boolean
      If obj Is Nothing Or Not Me.GetType() Is obj.GetType() Then
         Return False
      End If
      Dim r As Rectangle = CType(obj, Rectangle)
      Return Me.a.Equals(r.a) And Me.b.Equals(r.b)
   End Function 
   
   Public Overrides Function GetHashCode() As Integer
      Return a.GetHashCode() ^ b.GetHashCode()
   End Function 
End Class