${res:Templates.File.Structure.Description}
''' Description of ${ClassName}.
'''
Public Structure ${ClassName}
Implements IEquatable(Of ${ClassName})
Private member As Integer
' this is just an example member, replace it with your own struct members!
#Region "Equals and GetHashCode implementation"
' The code in this region is useful if you want to use this structure in collections.
' If you don't need it, you can just remove the region and the "Implements IEquatable(Of ${ClassName})" declaration.
Public Overrides Function Equals(obj As Object) As Boolean
If TypeOf obj Is ${ClassName} Then
Return Equals(CType(obj, ${ClassName}))
Else
' use Equals method below
Return False
End If
End Function
Public Overloads Function Equals(other As ${ClassName}) As Boolean
' add comparisions for all members here
Return Me.member = other.member
End Function
Public Overrides Function GetHashCode() As Integer
' combine the hash codes of all members here (e.g. with XOr operator)
Return member.GetHashCode()
End Function
Public Shared Operator =(left As ${ClassName}, right As ${ClassName}) As Boolean
Return left.Equals(right)
End Operator
Public Shared Operator <>(left As ${ClassName}, right As ${ClassName}) As Boolean
Return Not left.Equals(right)
End Operator
#End Region
End Structure
]]>