understand equal and gethashcode

Supposed we have a class below

public class TestHash
    {
        public int x;
        int y;
        public TestHash(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
        public override int GetHashCode()
        {
            Console.WriteLine("判断hashcode");
            return x + y;
        }
        public override bool Equals(object obj)
        {
            Console.WriteLine("判断equals");
            return base.Equals(obj);
        }
        public override string ToString()
        {
            return x.ToString() + y.ToString();
        }
    }

  

Hashtable ht = new Hashtable();
            TestHash cc = new TestHash(2, 3);
            TestHash cc2 = new TestHash(1, 4);
            TestHash cc3 = new TestHash(3, 3);
            ht.Add(cc, "test1");
            ht.Add(cc2, "test2");
            ht.Add(cc3, "test3");
            

            Console.WriteLine("Begin print....");
            foreach (TestHash im in ht.Keys)
            {
                Console.WriteLine(im.ToString() + " -----  " + ht[im]);
            }
            Console.Read(); 

  

See also:

http://msdn.microsoft.com/en-us/library/ms173147(v=vs.80).aspx

http://msdn.microsoft.com/zh-cn/library/system.object.gethashcode(v=vs.110).aspx

原文地址:https://www.cnblogs.com/malaikuangren/p/3600876.html