Vector из float с наследованием операторов на C#?

Мне необходим тип данных с тремя полями float и при этом без переписывания операторов, то есть
class Vector{ float X,Y,Z; }

operator+(vector A, vector B){ A.X += B.X; A.Y += B.Y;... }

что бы потом спокойно писать
Vector a,b,c;
c = a + b;

а не
Vector a,b,c;
c.x = a.x + b.x;
c.y = a.y + b.y;
c.z = a.z + b.z;

как избежать подобного мне ведь ещё нужно вычитание, умножение. Можно ли наследовать класс float или операторы? и если нет, то правильно ли я делаю? есть ли ещё варианты? и как правильно оформить?
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 2
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
C# так не работает, откуда компилятор может знать что собой представляет ваш класс и что должно происходить при сложении? Все операторы нужно реализовывать самому. Написать три метода дело пары минут, вы на тостер дольше заходили. Если версия дотнета не позволяет использовать встроенные классы, можете подсмотреть реализацию в Reference Source:
referencesource.microsoft.com/#System.Numerics/Sys...
referencesource.microsoft.com/#System.Numerics/Sys...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы