Технически, вы могли бы использовать статический метод, метод расширения и, возможно, даже перегрузку оператора, как и другие ответы предполагают.
Тем не менее, .NET имеет как Point
и Size
, чтобы захватить семантическое различие:
Point
относится к точке, как правило, по сравнению с произвольной точкой отсчета.
Size
относится к вектору - расстояние с направлением, или расстояние Х & расстояние Y.
Добавление Point
сек будет бессмысленным. Например, если Point
s относятся к координатам на географической карте - что бы они значили? «50 ° широты» + «60 ° широты» = «110 ° широты»? Вот почему .NET мудро решил не применять оператор добавления.
Однако, добавление Point
и Size
может иметь разумный смысл - «50 ° широты» + «1 ° широты» = «51 ° широты» - хороший ответ.
PS. Обратите внимание на сходство с различием между DateTime
и TimeSpan
.
TL; DR - один или оба ваших Point
с фактически должен быть Size
- изменить его в кратчайшем месте.
'var c = новая точка (a.X + b.X, a.Y + b.Y);'? – Corak
Невозможно добавить к классу Point класс, позволяющий использовать оператор +? – redcodefinal