Credo non sia possibile fare un overload di un operatore per un tipo predefinito di .NET (Double). L'errore che ti compare è dovuto al fatto che il compilatore si aspetta di trovare almeno un parametro del tipo della classe che lo contiene. Immaginiamo che ti trovi dentro la classe Vettore; l'overload dell'operatore + si potrebbe scrivere così:
Siccome però non conosco bene c#, ti posto un pezzo di codice VB.NET 2005 (che supporta l'overload degli operatori) sperando ti possa essere utile:codice:public class Vettore { public Vettore() { // // TODO: aggiungere qui la logica del costruttore // } public static Vettore operator -(Vettore vx, Vettore vy) { // bla bla bla } }
Non badare a come ho implementato la somma, l'ho scritta a caso.codice:Public Class Vector Private _v As Double() Public Sub New() _v = Nothing End Sub Public Property Items() As Double() Get Return _v End Get Set(ByVal value As Double()) _v = value End Set End Property Public Shared Operator +(ByVal v1 As Vector, ByVal v2 As Vector) As Vector Dim vv As New Vector 'implementazione della somma vv._v(0) = v1._v(0) + v2._v(0) Return vv End Operator End Class
Ciao

Rispondi quotando