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ì:
codice:
	public class Vettore
	{
		public Vettore()
		{
			//
			// TODO: aggiungere qui la logica del costruttore
			//
		}

		public static Vettore operator -(Vettore vx, Vettore vy) 
		{ 
			// bla bla bla 
		} 

	}
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 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
Non badare a come ho implementato la somma, l'ho scritta a caso.

Ciao