Why Override GetHashCode When Overriding Equals in C# | CodeTrail