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)); }
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; }
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); }