## Why is this an issue?

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.

### Noncompliant code example

    Structure MyStruct ' Noncompliant

        Public Property Value As Integer

    End Structure

### Compliant solution

    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

## Resources

- IEquatable<T> Interface