2010-04-21 9 views
6

Ich frage mich, ob diese Technik einen Namen hat - State-Methoden ändern, um dies zurückzugeben, in der Lage sein, sie in der linq Weg method().method().method() schreiben.C# - Wie heißt diese Technik?

class Program 
{ 
    static void Main(string[] args) 
    { 
     Test t = new Test(); 
     t.Add(1).Write().Add(2).Write().Add(3).Write().Add(4).Write().Subtract(2).Write(); 
    } 
} 

internal class Test 
{ 
    private int i = 0; 

    public Test Add(int j) 
    { 
     i += j; 
     return this; 
    } 

    public Test Subtract(int j) 
    { 
     i -= j; 
     return this; 
    } 

    public Test Write() 
    { 
     Console.WriteLine("i = {0}",i.ToString()); 
     return this; 
    } 
} 
+1

Meinst du Fluent-Schnittstelle? –

+0

Beachten Sie, dass einige Methoden ein anderes Objekt zurückgeben können, nicht nur 'this' und trotzdem den gleichen Effekt erhalten. Im Allgemeinen geht es darum, etwas zurückzugeben, was eine weitere Verkettung ermöglicht. – Richard

+6

Ich würde es eher "hässlichen Code" nennen, aber das ist nur eine persönliche Meinung. –

Antwort

1

fliessend API.

Viele Frameworks unterstützen es jetzt.