閉包是一個外部函數O,它的體內有一個變量x和一個內部函數F. F必須訪問x。 O必須返回F,即F本身(或它的指針),而不是F的返回值。這種方式由於F可以從O外的代碼調用,並且F需要執行x,所以x必須保持在範圍之後O出口。我們可以關閉沒有內部功能嗎?
在JavaScript中,我們可以定義函數中的功能,因此它的直線前進。在C#中,我們必須使用匿名方法或匿名委託來具有與內部函數相同的行爲。
封閉的essense是保留一個函數的局部變量的值,函數退出後,使下一次調用該函數時,以前的值已經存在。上述語法和技巧是完成閉包的方法。
反正有,在任何語言(比彙編語言之外)具有封閉的本質,而無需使用一個內部函數或委託。 OOP中的課程領域有相同的效果,但我正在尋找其他方法。
類是窮人的關閉,關閉是窮人的類:)唯一改變的細節是如何實現後備存儲。 – leppie