1. 性能
當創建 Lambda 的時候,將會創建一個委託,這需要內存分配,因爲委託是一個對象。而本地方法則不需要,它是一個真正的方法。
另外,本地方法可以更爲有效地使用本地變量,Lambda 將變量放到類中,而本地方法可以使用結構,而不使用內存分配。
這意味着調用本地方法更爲節約且可能內聯。
2. 本地方法可以遞歸
Lambda 也可以實現遞歸,但是代碼醜陋,您需要先賦予 lambda 爲 null。本地方法可以更爲自然地遞歸。
3. 本地方法可以使用泛型
Lambda 不能使用泛型。這是因爲需要賦予一個實例類型的變量。
4. 本地方法可以實現迭代器
Lambda 不能使用 yield return (以及 yield break)關鍵字,以實現 IEnumerable<T> 返回函數。本地方法可以。