闭包是一个外部函数O,它的体内有一个变量x和一个内部函数F. F必须访问x。 O必须返回F,即F本身(或它的指针),而不是F的返回值。这种方式由于F可以从O外的代码调用,并且F需要执行x,所以x必须保持在范围之后O出口。我们可以关闭没有内部功能吗?
在JavaScript中,我们可以定义函数中的功能,因此它的直线前进。在C#中,我们必须使用匿名方法或匿名委托来具有与内部函数相同的行为。
封闭的essense是保留一个函数的局部变量的值,函数退出后,使下一次调用该函数时,以前的值已经存在。上述语法和技巧是完成闭包的方法。
反正有,在任何语言(比汇编语言之外)具有封闭的本质,而无需使用一个内部函数或委托。 OOP中的课程领域有相同的效果,但我正在寻找其他方法。
类是穷人的关闭,关闭是穷人的类:)唯一改变的细节是如何实现后备存储。 – leppie