== Why is this an issue? If you're using a `struct`, it is likely because you're interested in performance. But by failing to implement `IEquatable` you're loosing performance when comparisons are made because without `IEquatable`, boxing and reflection are used to make comparisons. === Noncompliant code example [source,csharp] ---- struct MyStruct // Noncompliant { public int Value { get; set; } } ---- === Compliant solution [source,csharp] ---- struct MyStruct : IEquatable { public int Value { get; set; } public bool Equals(MyStruct other) { // ... } } ---- include::../see.adoc[] include::../rspecator.adoc[]