Я думаю, это довольно простая проблема, но я не мог найти ответ.Перегрузка оператора мультиплексирования на векторный класс в C#
Программа сделана для учебных целей, я определил вектор класса с оператором умножения, как это:
public class vector
{
private int x;
private int y;
public vector(int x,int y)
{
this.x = x;
this.y = y;
}
public static vector operator *(vector w1, vector w2)
{
return int w1.x*w2.x + w1.y * w2.y;
}
}
Проблема заключается в том, что визуальная студия подчеркивает выражение в свою очередь, как я должен изменить определение Оператор «*», чтобы он работал?
@ThomasD. Вы можете * абсолютно * перегрузить двоичный '*' оператор в C# (обратите внимание, что вы не переопределяете операторов, вы их перегружаете.) Вы не можете перегрузить * унарный * '*' оператор, но это не то, что перегружено здесь , – Servy
@ Серви, ты совершенно прав. Приятно, я кое-что узнал сегодня. Спасибо что подметил это! –
Я думаю, реальная проблема заключается в том, что умножение преобразует векторный объект класса в целое число, можно перегрузить оператор «*», я просто не могу найти способ вернуть туда int, и с этим мне нужна помощь. –