级联和链接之间的差异是什么?
我只是从一个关于级联的论坛中找到。 问题是级联在大便中意味着什么。 我试图找到谷歌的答案,也试图找到一些其他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();
。
编辑:我回滚了我以前的编辑。 看来上面的内容是正确的,并且术语不会错误地翻转。