2010-04-21 48 views
6

我想知道如果這種技術有一個名稱更改狀態方法來返回此,以便能夠以linq方式寫他們method().method().method()C# - 這種技術是如何被調用的?

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

你是指Fluent界面? – 2010-04-21 10:17:26

+0

請注意,有些方法可能會返回另一個對象,不僅僅是'this',而且還會得到相同的效果。通常這是關於返回允許進一步鏈接的東西。 – Richard 2010-04-21 10:26:02

+6

我寧願把它稱爲'難看的代碼',但這只是個人意見。 – 2010-04-21 10:32:30

回答

1

流利的API。

現在很多框架都支持它。