Ich denke, es ist ein ziemlich grundlegendes Problem, aber ich konnte keine Antwort finden.Multiplizieren Operator überladen auf Vektor-Klasse in 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;
}
}
Das Problem ist, dass Visual Studio den Ausdruck im Gegenzug unterstreicht, wie soll ich die Definition ändern von:
Programm ist für das Lernen Zweck gemacht, hatte ich eine Vektor-Klasse mit Multiplikationsoperator wie folgt definiert "*" Operator, damit es funktioniert?
@ThomasD. Sie können * absolut * den binären '*' Operator in C# überladen (Beachten Sie, dass Sie keine Operatoren überschreiben, Sie überladen sie.) Sie können den * unary * '*' Operator nicht überladen, aber das wird hier nicht überladen . – Servy
@Servy du hast absolut recht. Nett, ich habe heute etwas gelernt. Danke, dass du das unterstrichen hast! –
Ich denke, das wirkliche Problem ist, dass die Multiplikation das Vektorklassenobjekt in eine Ganzzahl umwandelt, es ist möglich, den Operator "*" zu überladen, ich kann einfach keinen Weg finden, ein int zurückzugeben und das ist es, womit ich Hilfe brauche. –