Implement operators and equality comparison in Point and Size #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the core types
PointandSizedo not have equality or operators implemented. This PR fixes that. This overrides equality, inequality, addition, subtraction, and unary negation onPoint, and all of those except unary negation onSize. TheEqualsandGetHashCodemethods are also implemented, with hash codes using the method recommended by Jon Skeet. These changes will allow cleaner code, such as some of the equality checks in PR #1.While reviewing this code, I noticed that Size will happily accept negative values for
WidthandHeight. Is this my design? If so, it is not commented, and it should be because it seems contrary to intuition. If not, it should probably be rewritten as a property that validates positive values for both properties. Any thoughts on this?