2012-10-22 41 views
0

例如,我明白,我能夠做到這一點:使用方法,C#

string x = Int32.Parse("123").ToString(); 

相反的:

int y = Int32.Parse("123"); 
string x = y.ToString(); 

因爲Parse()方法返回與整數,然後我可以在整數上使用ToString()方法。但是這種技術叫做什麼?有關更多信息,我無法將其轉化爲Google的文字。是.NET /高級編程的劣勢,還是你能用C這樣的低級編程語言來做到這一點?

+5

我會稱之爲調用或方法鏈接。 – Lloyd

+0

這幾乎適用於任何允許帶有可返回其他對象的方法的語言。它甚至可以通過在函數結構中存儲函數指針來在C中取消。 – dbattaglia

回答

2

這就是所謂的方法鏈接。以下是詳細信息:

Universal method chaining

您可能希望看到這篇文章關於LINQ從文章

Understanding LINQ to Objects (2) Method Chaining

例子:

int[] source = new int[] { 0, 1, -2, 3, 24, 6, 3 }; 
var results = source.Where(item => item > 0 && item < 10) 
        .OrderBy(item => item) 
        .Select(item => item.ToString(CultureInfo.InvariantCulture)) 
+0

非常感謝! – Project2051

+0

@ Project2051,歡迎您 – Habib

4

它被稱爲方法鏈接。在這裏看到更多的信息:Method chaining

我認爲從上面的維基採取重要的一點是;

方法鏈接不是必需的。它只會潛在地提高可讀性並減少源代碼的數量。這是建立Fluent Interface的核心理念。

+0

是的,我一直把它稱爲 –

+0

謝謝你們,你們的回答很有幫助! – Project2051

1

這就是所謂的「方法鏈接」將其轉化爲Google,您應該獲得一些h可笑的結果!

+1

您可以將點鏈接到'如何以編程方式安裝屏幕保護程序?' – Habib

+1

我已經編輯了鏈接 - 隨意添加其他內容,但與方法鏈無關。 –

+0

對不起!然後在我的剪貼板上有一個不同的鏈接。感謝修復! –

1

它的方法鏈接,可以用來創建流暢的接口。這是(方法鏈陳述的)LINQ的基礎。

由於這給出了可能出現異常的較大表面積,因此如果您需要檢查您的假設(檢查空值等),則不推薦使用。

0

是的..正如每一個人所說,這是一種方法鏈。如果你已經注意到,這甚至存在於jQuery中。 ('#id')。show(300).html('XYZ')。hide(500);顯示(300).html('XYZ')。