Пример #1
0
        public override bool Equals(object obj)
        {
            NotOverrideGHC o = (NotOverrideGHC)obj;

            if (a == o.a && b == o.b)
            {
                return(true);
            }

            return(false);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }