How to make the + operator work while adding two Points to each other?
.net, c#, operators, point, winforms
Solution
It's not going to happen the way you expect. The only overload that the `Point` structure provides for the `+` (addition) operator is one that translates the coordinates of the `Point` by a `Size`.
There's no way to add two `Point` structures together, and I'm not even sure what that would mean.
Don't waste too much time figuring it out, either, considering that you cannot write extension methods that overload operators.
Fortunately, in a compiled language, there's no penalty for splitting up code into multiple lines. So you can re-write your code as follows:
Point newLocation = new Point(e.Location.X + this.i_rendered.Location.X,
e.Location.Y + this.i_rendered.Location.Y);
this.cm1.Show(newLocation);
Alternatively, you could use the `Offset` method, but I'm not convinced that enhances readability.
Problem
Is there any way to get the `+` operator to work for the Point object? Take, for example, this tiny snippet: ``` this.cm1.Show((MouseEventArgs)e.Location+this.i_rendered.Location); ``` You see, I try to add two points to eachother. It just does not work (which was expected). I'd love to get this working. Any ideas?