using System.Collections.Generic; using System.Runtime.CompilerServices; namespace StardewModdingAPI.Framework.StateTracking.Comparers { /// A comparer which considers two references equal if they point to the same instance. /// The value type. internal class ObjectReferenceComparer : IEqualityComparer { /********* ** Public methods *********/ /// Determines whether the specified objects are equal. /// true if the specified objects are equal; otherwise, false. /// The first object to compare. /// The second object to compare. public bool Equals(T? x, T? y) { return object.ReferenceEquals(x, y); } /// Get a hash code for the specified object. /// The value. public int GetHashCode(T obj) { return RuntimeHelpers.GetHashCode(obj); } } }