2010-04-21 6 views
6

Je me demandais si cette technique avait un nom - changeant les méthodes d'état pour retourner ceci, pour pouvoir les écrire de la manière linq method().method().method().C# - Comment s'appelle cette technique?

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

Voulez-vous dire l'interface Fluent? –

+0

Notez que certaines méthodes peuvent renvoyer un autre objet, pas simplement 'this' et obtenir le même effet. En règle générale, il s'agit de retourner quelque chose qui permet d'enchaîner davantage. – Richard

+6

Je préfère l'appeler «code moche» mais c'est juste une opinion personnelle. –

Répondre

1

API Courant.

De nombreux frameworks le supportent désormais.