This interface is implemented by types whose values can be equated (for example, the numeric and string classes). A value type or class implements the Equals method to create a type-specific method suitable for determining equality of instances.
Note: |
|---|
The
IComparable<(Of <(T>)>) interface defines the CompareTo method, which determines the sort order of instances of the implementing type. The IEquatable<(Of <(T>)>) interface defines the Equals method, which determines the equality of instances of the implementing type.
|
The IEquatable<(Of <(T>)>) interface is used by generic collection objects such as Dictionary<(Of <(TKey, TValue>)>), List<(Of <(T>)>), and LinkedList<(Of <(T>)>) when testing for equality in such methods as Contains, IndexOf, LastIndexOf, and Remove. It should be implemented for any object that might be stored in a generic collection.
Notes to Implementers:
Replace the type parameter of the IEquatable<(Of <(T>)>) interface with the type that is implementing this interface.
If you implement IEquatable<(Of <(T>)>), you should also override the base class implementations of Object..::.Equals(Object) and GetHashCode so that their behavior is consistent with that of the IEquatable<(Of <(T>)>)..::.Equals method. If you do override Object..::.Equals(Object), your overridden implementation is also called in calls to the static Equals(System.Object, System.Object) method on your class. This ensures that all invocations of the Equals method return consistent results.