rspec/rules/S3898/vbnet/rule.adoc

34 lines
793 B
Plaintext

== 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
[source,vbnet]
----
Structure MyStruct ' Noncompliant
Public Property Value As Integer
End Structure
----
=== Compliant solution
[source,vbnet]
----
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
----
include::../see.adoc[]
include::../rspecator.adoc[]