Ejemplo n.º 1
0
        public void GetHashCode()
        {
            OverrideGHC a = new OverrideGHC(33, true);
            OverrideGHC b = new OverrideGHC(178, false);

            Console.WriteLine(a.GetHashCode());
            Console.WriteLine(b.GetHashCode());
        }
Ejemplo n.º 2
0
        public override bool Equals(object obj)
        {
            OverrideGHC o = (OverrideGHC)obj;

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

            return(false);
        }
Ejemplo n.º 3
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());
        }
Ejemplo n.º 4
0
        public void OverrideGHCInCollection()
        {
            String va, vb;
            var    a = new OverrideGHC(1, true);
            var    b = new OverrideGHC(1, true);

            var d = new Dictionary <OverrideGHC, String>();

            d.Add(a, "a1 value");

            d.TryGetValue(a, out va);
            d.TryGetValue(b, out vb);

            //with overrided hash code if objects are equal (even if it is different instances) corretly find them in hash table
            A.AreEqual(a, b);
            A.AreEqual("a1 value", va);
            A.AreEqual("a1 value", vb);
        }