级联和链接之间的差异是什么?

我只是从一个关于级联的论坛中找到。 问题是级联在大便中意味着什么。 我试图找到谷歌的答案,也试图找到一些其他stackoverflow线程,但我不能。 我只是找到这个链接http://en.wikipedia.org/wiki/Method_cascading

我知道什么是链接,我使用它,大多数是在javascript,jquery和其他语言中,但我不理解链接和级联之间的区别。 有谁能够帮我? 或者任何人都可以提供一些有用的链接吗?

链接是返回方法调用结果的地方,用于下次调用。

C#

 Enumerable.Range(0,10).Skip(1).Aggregate(myList.First(),(result,listItem) => result += listItem)); //results in 45 being returned 

当返回时,可以通过使用链接来实现级联(使得有时难以区分两者)。 jQuery做到了这一点。

jQuery的

 $("#myId").css("background-color","blue").fadeIn().fadeOut(); //results in $("#myId") being returned 

您链接的维基百科页面上的定义非常清楚:

给定方法调用ab(),在执行调用之后,方法级联将此表达式计算为左对象a(具有其新值,如果已突变),而方法链接将此表达式计算为正确的对象。

这意味着, ab()返回带有方法级联的变异实例。 ab()通过方法链返回与b()不同的东西。

所以,这是方法级联:

 class YourClass { public YourClass b() { // do stuff return this; } public YourClass c() { // do stuff return this; } } 

..which允许: yourClass.b().c();

..这是方法链接:

 class YourClass { public SomeOtherObject b() { // do stuff return new SomeOtherObject(this); } } class SomeOtherObject { private YourClass _owner; public SomeOtherObject(YourClass owner) { _owner = owner; } public void c_onOtherObject() { } } 

..which允许: yourClass.b().c_onOtherObject();

编辑:我回滚了我以前的编辑。 看来上面的内容是正确的,并且术语不会错误地翻转。