Multiplikationsoperator überladen, Reihenfolge



  • Für eine Klasse "Messung", die hier vereinfacht aus drei Zahlen w1, w2, w3 besteht, möchte ich den Multiplikationsoperator überladen. Das funktioniert, wenn die Parameter in der richtigen Reihenfolge übergeben werden (hier: Messung * double). Wenn das auch mit der umgekehrten Reihenfolge funktionieren soll (double * Messung), muss ich dann eine zweite Methode dafür schreiben, oder kann man irgendwie angeben dass das Kommutativgesetz gelten soll?

    Gruß
    Michael

    public static Messung operator *(Messung m, double c)
    {
        Messung ergebnis = new Messung(m.w1 * c, m.w2 * c, m.w3 * c);
        return ergebnis;
    }
    


  • Du mußt dann auch die andere Operator-Methode anbieten:

    public static Messung operator *(double c, Messung m)
    {
        return m * c; // führt deine andere Operator-Methode aus
    }
    


  • Th69 schrieb:

    Du mußt dann auch die andere Operator-Methode anbieten:

    danke, alles klar.

    Gruß
    Michael


Log in to reply