博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何为引用类型如何重写Object.Equals()方法?
阅读量:6995 次
发布时间:2019-06-27

本文共 1239 字,大约阅读时间需要 4 分钟。

//默认的隐式继承了Object    public class Personal : Object    {        String name = null;        Int32 age = 0;        public override bool Equals(object obj)        {            //因为“this”当前类的实例对象不为,null,            //所以如果obj为null,那么这两个对象不可能相等            if (obj == null)            {                return false;            }            //如果两个对象的类型不一样,他们也不会想的            if (this.GetType() != obj.GetType())            {                return false;            }            //以上的代码执行完毕之后,我们知道obj既不为null,同时和当前的对象类型            //一直,此时便可以进行转型操作            Personal pl = (Personal)obj;            //如果两个对象相等,那么该对象的值类型成员和引用类型成员都和当前的相等            //比较其中的引用字段            if (!Object.Equals(name, pl.name)) //如果其中的那么不相等            {                return false;            }            if (!this.age.Equals(pl.age))            {                return false;            }            return base.Equals(obj);        }        //重载操作符号        public static Boolean operator ==(Personal p1, Personal p2)        {            return Object.Equals(p1, p2);        }        public static Boolean operator !=(Personal p1, Personal p2)        {            return !(p1 == p2);        }    }

转载于:https://www.cnblogs.com/Sky-cloudless/archive/2012/05/30/2525826.html

你可能感兴趣的文章