internal static bool DefaultEquals(object o1, object o2) { if (o2 == null) { return(false); } object[] array; bool result = ValueType.InternalEquals(o1, o2, out array); if (array == null) { return(result); } for (int i = 0; i < array.Length; i += 2) { object obj = array[i]; object obj2 = array[i + 1]; if (obj == null) { if (obj2 != null) { return(false); } } else if (!obj.Equals(obj2)) { return(false); } } return(true); }