If you’re using a Structure, it is likely because you’re interested in performance. But by failing to implement
IEquatable<T> you’re loosing performance when comparisons are made because without IEquatable<T>, boxing and
reflection are used to make comparisons.
Structure MyStruct ' Noncompliant
Public Property Value As Integer
End Structure
Structure MyStruct
Implements IEquatable(Of MyStruct)
Public Property Value As Integer
Public Overloads Function Equals(other As MyStruct) As Boolean Implements IEquatable(Of MyStruct).Equals
' ...
End Function
End Structure