2012-10-22 38 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')。