我想知道如果這種技術有一個名稱更改狀態方法來返回此,以便能夠以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;
}
}
你是指Fluent界面? – 2010-04-21 10:17:26
請注意,有些方法可能會返回另一個對象,不僅僅是'this',而且還會得到相同的效果。通常這是關於返回允許進一步鏈接的東西。 – Richard 2010-04-21 10:26:02
我寧願把它稱爲'難看的代碼',但這只是個人意見。 – 2010-04-21 10:32:30