Mega Code Archive

 
Categories / VB.Net / Development
 

Create Complex Structure with Equals and GetHashCode method

Public Structure Complex     Public re, im As Double     Public Overrides Function Equals(ByVal obj As [Object]) As Boolean          Return TypeOf obj Is Complex AndAlso Me = CType(obj, Complex)     End Function      Public Overrides Function GetHashCode() As Integer          Return re.GetHashCode() ^ im.GetHashCode()     End Function      Public Shared Operator = (x As Complex, y As Complex) As Boolean        Return x.re = y.re AndAlso x.im = y.im     End Operator      Public Shared Operator <> (x As Complex, y As Complex) As Boolean        Return Not (x = y)     End Operator   End Structure Class Example    Public Shared Sub Main()        Dim cmplx1, cmplx2 As Complex       cmplx1.re = 4.0       cmplx1.im = 1.0       cmplx2.re = 2.0       cmplx2.im = 1.0       If cmplx1 <> cmplx2 Then          Console.WriteLine("The two objects are not equal.")       End If       If Not cmplx1.Equals(cmplx2) Then          Console.WriteLine("The two objects are not equal.")       End If       cmplx2.re = 4.0       If cmplx1.Equals(cmplx2) Then          Console.WriteLine("The two objects are now equal!")       End If       If cmplx1 = cmplx2 Then          Console.WriteLine("The two objects are now equal!")       End If    End Sub End Class