public override bool Equals(object obj) { NotOverrideGHC o = (NotOverrideGHC)obj; if (a == o.a && b == o.b) { return(true); } return(false); }
public void EqualsAndHashCode() { OverrideGHC a1 = new OverrideGHC(1, true); OverrideGHC a2 = new OverrideGHC(1, true); NotOverrideGHC b1 = new NotOverrideGHC(1, true); NotOverrideGHC b2 = new NotOverrideGHC(1, true); //if objects == than their hash codes match A.IsTrue(a1.Equals(a2)); A.AreEqual(a1.GetHashCode(), a2.GetHashCode()); //default implementation do not satisfies rule above A.IsTrue(b1.Equals(b2)); A.AreNotEqual(b1.GetHashCode(), b2.GetHashCode()); }
public void NotOverrideGHCInCollection() { String va, vb; var a = new NotOverrideGHC(1, true); var b = new NotOverrideGHC(1, true); var d = new Dictionary <NotOverrideGHC, String>(); d.Add(a, "a1 value"); d.TryGetValue(a, out va); d.TryGetValue(b, out vb); //without overrided hash code if objects are equal could not find them in hash table //find only by instanse A.AreEqual(a, b); A.AreEqual("a1 value", va); A.AreNotEqual("a1 value", vb); }