2010-04-21 33 views
6

Bu tekniğin, bunu geri döndürmek için bir durum değiştiren durum yöntemlerine sahip olup olmadığını, method().method().method() linq yöntemiyle yazabilmeyi isterdim.C# - Bu teknik nasıl adlandırılır?

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

Bunu mu demek istediniz: Fluent interface? –

+0

Not: Bazı yöntemler başka bir nesneyi, sadece '' 'bu değil, aynı etkiyi de döndürür. Genel olarak bu, daha fazla zincirleme sağlayan bir şey döndürmekle ilgilidir. – Richard

+6

Ben buna 'çirkin kod' diyoruz ama bu sadece kişisel bir fikir. –

cevap

1

Akıcı API zincirleme.

Artık birçok çerçeve bunu destekliyor.

İlgili konular