private static bool AreFieldValuesEqual(object fieldValue1, object fieldValue2) { if (fieldValue1 == fieldValue2) { return(true); } bool flag = fieldValue1 == null; bool flag2 = fieldValue2 == null; if (flag & flag2) { return(true); } if (flag | flag2) { return(false); } if (fieldValue1.GetType() != fieldValue2.GetType()) { return(false); } if ((fieldValue1 is IEnumerable) && (fieldValue2 is IEnumerable)) { return(((IEnumerable)fieldValue1).Cast <object>().SequenceEqual <object>(((IEnumerable)fieldValue2).Cast <object>())); } return(EquatableUtil.Equals(fieldValue1, fieldValue2)); }
public override unsafe bool Equals(object obj) => EquatableUtil.Equals <TupleStruct <T1, T2, T3, T4, T5, T6>, object>(*((TupleStruct <T1, T2, T3, T4, T5, T6> *) this), obj);
public override bool Equals(object obj) => EquatableUtil.Equals <ReferenceValue, object>(this, obj);
public override bool Equals(object obj) => EquatableUtil.Equals <ScaleFactor, object>(this, obj);