首页 > 其他 > 详细

重写类的Equals

时间:2014-02-27 14:32:59      阅读:392      评论:0      收藏:0      [点我收藏+]

当自定义一个类的时候,如果需要用到对比的功能,可以自己重写Equals方法,最整洁的方法是重写GetHashCode()方法。

bubuko.com,布布扣
    public enum Week
    {
        Monday = 1,
        Tuesday = 2,
        Wednesday = 3,
        Thursday = 4,
        Friday = 5,
        Saturday = 6,
        Sunday = 0
    }

    public class TestEquals
    {
        public Week Day { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public TestEquals(Week day, string name, int age)
        {
            this.Day = day;
            this.Name = name;
            this.Age = age;
        }

        public override bool Equals(object obj)
        {
            if (obj == null) 
                return false;
            if (obj.GetType() != this.GetType())
                return false;

            TestEquals p = obj as TestEquals;
            return this.GetHashCode() == p.GetHashCode();
        }

        public override int GetHashCode()
        {
            return Day.GetHashCode() ^ Name.GetHashCode() ^ Age.GetHashCode();
        }
    }
bubuko.com,布布扣
bubuko.com,布布扣
        static void Main(string[] args)
        {
            TestEqual();
        }

        private static void TestEqual()
        {
            TestEquals t1 = new TestEquals(Week.Monday, "杨彬", 29);
            TestEquals t2 = new TestEquals(Week.Monday, "杨彬", 29);

            Console.WriteLine(t1.Equals(t2));
            Console.ReadLine();
        }
bubuko.com,布布扣

重写类的Equals,布布扣,bubuko.com

重写类的Equals

原文:http://www.cnblogs.com/takako_mu/p/3569548.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!