Was ist falsch an diesem C # -Code? Ich habe versucht, den Operator + zu überladen, um zwei Arrays hinzuzufügen, aber eine Fehlermeldung wie folgt erhalten:
Einer der Parameter eines binären Operators muss der umgebende Typ sein.
%Vor%Operatoren müssen in einem "verwandten" Klassenkörper deklariert sein. Zum Beispiel:
%Vor%Da Sie keinen Zugriff auf die Implementierung von Arrays haben, sollten Sie Ihre Arrays entweder in Ihre eigene Implementierung einbinden, um zusätzliche Operationen bereitzustellen (und dies ist die einzige Möglichkeit, um den Operator + arbeiten zu lassen.) / p>
Auf der anderen Seite könnten Sie eine Erweiterungsmethode wie folgt definieren:
%Vor% Das führt immer noch zu natürlichen Aufrufen ( x.Add(y)
), während das Umbrechen von Arrays in Ihrer eigenen Klasse vermieden wird.
Es besagt, dass einer der Parameter für den Operator vom gleichen Typ sein muss wie die Operatorfunktion. Wenn also die Operatorfunktion ein Mitglied von MyClass ist, muss einer der Parameter vom Typ MyClass sein.
%Vor%Wenn Sie den Operator le + zwischen Typ AA und BB überladen wollen, müssen Sie dies in der Klasse AA oder BB tun und nicht in einer Klasse namens Programm (wie Sie es getan haben).
Leider können Sie keinen Code in der Klasse Array schreiben.
Was Sie tun können, ist
Wenn Sie eine detailliertere Implementierung benötigen, fragen Sie mich einfach.
Tags und Links c# operator-overloading