C#中關於本地方法和λ表達式的取捨

1. 性能

當創建 Lambda 的時候,將會創建一個委託,這需要內存分配,因爲委託是一個對象。而本地方法則不需要,它是一個真正的方法。

另外,本地方法可以更爲有效地使用本地變量,Lambda 將變量放到類中,而本地方法可以使用結構,而不使用內存分配。

這意味着調用本地方法更爲節約且可能內聯。

2. 本地方法可以遞歸

Lambda 也可以實現遞歸,但是代碼醜陋,您需要先賦予 lambda 爲 null。本地方法可以更爲自然地遞歸。

3. 本地方法可以使用泛型

Lambda 不能使用泛型。這是因爲需要賦予一個實例類型的變量。

4. 本地方法可以實現迭代器

Lambda 不能使用 yield return (以及 yield break)關鍵字,以實現 IEnumerable<T> 返回函數。本地方法可以。

5. 本地方法更爲易讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章