public int GetHashCode(ComparableStruct <TMember> obj) { var setter = _memberComparer as IHashSeedSetter; var combiner = HashCodeCombiner.Start(); setter?.SetHashSeed(combiner.CombinedHash); combiner.CombineObjects(obj.Field is null ? 0 : _memberComparer.GetHashCode(obj.Field)); setter?.SetHashSeed(combiner.CombinedHash); return(combiner.CombineObjects(obj.Property is null ? 0 : _memberComparer.GetHashCode(obj.Property))); }
public bool Equals(ComparableStruct <TMember> x, ComparableStruct <TMember> y) { var compare = _memberComparer.Equals(x.Field, y.Field); if (!compare) { return(false); } return(_memberComparer.Equals(x.Property, y.Property)); }