public override bool Equals(object obj) { if (obj is Test t) { return(Name.Equals(t.Name) && TestList.SequenceEqual(t.TestList) && ListInList.SequenceEqual(t.ListInList, new ListEqualityComparer <int>()) && ListOfObject.SequenceEqual(t.ListOfObject) && TestObject.Equals(t.TestObject) && FloatValue.Equals(t.FloatValue) && BoolValue.Equals(t.BoolValue)); } return(false); }
/// <summary> /// WARNING: This function returns true if the object being compared can provide an equal value, even if the types differ. /// Use IsIdenticalTo to check for complete equality (same type and value) /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { object compareObject = obj; if (obj == this) { return(true); } else if (obj == Empty || this == Empty) { return(false); } if (obj is BindingValue) { BindingValue bvObj = (BindingValue)obj; switch (bvObj._nativeValueType) { case BindingValueType.Boolean: compareObject = bvObj.BoolValue; break; case BindingValueType.String: compareObject = bvObj.StringValue; break; case BindingValueType.Double: compareObject = bvObj.DoubleValue; break; } } // XXX rewrite. this is insanely inefficient to use a type check here to check what branch we took above if (compareObject is string) { return(StringValue.Equals(compareObject)); } else if (compareObject is double) { return(DoubleValue.Equals(compareObject)); } else if (compareObject is bool) { return(BoolValue.Equals(compareObject)); } return(false); }
public override bool Equals(object obj) { object compareObject = obj; if (obj == this) { return(true); } else if (obj == Empty || this == Empty) { return(false); } if (obj is BindingValue) { BindingValue bvObj = (BindingValue)obj; switch (bvObj._nativeValueType) { case BindingValueType.Boolean: compareObject = bvObj.BoolValue; break; case BindingValueType.String: compareObject = bvObj.StringValue; break; case BindingValueType.Double: compareObject = bvObj.DoubleValue; break; } } if (compareObject is string) { return(StringValue.Equals(compareObject)); } else if (compareObject is double) { return(DoubleValue.Equals(compareObject)); } else if (compareObject is bool) { return(BoolValue.Equals(compareObject)); } return(false); }