rspec/rules/S3898/vbnet/rule.adoc

32 lines
765 B
Plaintext
Raw Normal View History

2023-01-26 10:24:38 +01:00
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[]