2016-04-14 19 views
-2

Ich versuche, eine statische Methode zu erstellen, die in Chaining verwendet werden kann, aber die verfügbaren Optionen hängen von der bisherigen Methode innerhalb der KetteC# Statische Methoden Anrufe

Zum Beispiel MethodXX wird nur eine Option, wenn MethodA seine() hieß.

something.MethodA(). MethodeXX();

Wenn MethodB genannt wurde, dann wird die zur Verfügung stehende Option MethodYY

something.MethodB() sein MethodYY().

Danke

+0

Jede Methode sollte seine eigene Art Rückkehr/Schnittstelle. Welches Problem hast du angetroffen? –

+0

Sie scheinen mit statischen Methoden eine flüssige Oberfläche zu erstellen. Dies ist unmöglich, da Fluidschnittstellen von der Rückgabe der aktuellen Objektinstanz abhängig sind. Statische Methoden haben keinen Zugriff auf die aktuelle Instanz. –

+1

@RobertMoskal Eine fließende Schnittstelle ist nicht * definiert * als ein Objekt, das sich selbst zurückgibt. Das ist nur eine (sehr schlechte) Art, eine fließende Oberfläche zu erstellen. – Servy

Antwort

0

einen Blick auf Fluent Syntax Nehmen

Sie benötigen verschiedene Arten mit unterschiedlichen Methoden

Exemple zurückzukehren:

public ReturnTypeB void MethodA(this TypeA) 
    { 
     //do work 
     return ReturnTypeB; 
    } 
    public ReturnTypeC void MethodB(this ReturnTypeB) 
    { 
     //do work 
     return ReturnTypeC; 
    } 
+0

Das funktioniert gut, danke – JPKI