ReferenceEqualityComparer.cs 622 B

123456789101112131415161718192021222324252627
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Runtime.CompilerServices;
  4. namespace MatterHackers.Agg
  5. {
  6. public sealed class ReferenceEqualityComparer
  7. : IEqualityComparer, IEqualityComparer<object>
  8. {
  9. public static readonly ReferenceEqualityComparer Default
  10. = new ReferenceEqualityComparer(); // JIT-lazy is sufficiently lazy imo.
  11. private ReferenceEqualityComparer()
  12. {
  13. }
  14. public bool Equals(object left, object right)
  15. {
  16. return left == right; // Reference identity comparison
  17. }
  18. public int GetHashCode(object obj)
  19. {
  20. return RuntimeHelpers.GetHashCode(obj);
  21. }
  22. }
  23. }