Example #1
0
        public override bool Equals(object obj)
        {
            //为null,则必不相等
            if (obj == null)
            {
                return(false);
            }

            //引用判等为真,则二者必定相等
            if (ReferenceEquals(this, obj))
            {
                return(true);
            }

            //类型判断
            EqualsEx objEx = obj as EqualsEx;

            if (objEx == null)
            {
                return(false);
            }

            //最后是成员判断,分值类型成员和引用类型成员
            //通常可以提供强类型的判等方法来单独处理对各个成员的判等
            return(EqualsHelper(this, objEx));
        }
Example #2
0
        private static bool EqualsHelper(EqualsEx objA, EqualsEx objB)
        {
            //ֵ���ͳ�Ա�ж�
            if (!objA.ms.Equals(objA.ms)) return false;
            //�������ͳ�Ա�ж�
            if (!Equals(objA.mc, objB.mc)) return false;

            //��󣬲ſ����ж�������������ȵ�
            return true;
        }
Example #3
0
        private static bool EqualsHelper(EqualsEx objA, EqualsEx objB)
        {
            //值类型成员判断
            if (!objA.ms.Equals(objA.ms))
            {
                return(false);
            }
            //引用类型成员判断
            if (!Equals(objA.mc, objB.mc))
            {
                return(false);
            }

            //最后,才可以判定两个对象是相等的
            return(true);
        }