掌握 C# 閉包以提高程式碼可重複使用性
C# 閉包是一種有效的程式設計技術,可以將變數和函數封裝在委託或匿名方法中。 這允許創建高度適應性和可重複使用的程式碼段。
C# 閉包的機制
當在包含方法中定義匿名方法或委託時,就會建立閉包。 內部方法(匿名方法或委託)保留對外部方法範圍內聲明的變數的訪問,即使在外部方法完成執行之後也是如此。
範例:
考慮這個場景:
<code class="language-csharp">public Person FindById(int id) { return this.Find(delegate(Person p) { return (p.Id == id); }); }</code>
這裡,FindById
接受一個 id
並回傳一個 Person
物件。 傳遞給 Find
方法的匿名委託充當 lambda 表達式,檢查 Person
物件的 Id
是否與輸入 id
相符。 這可以透過 ID 有效地搜尋特定人員。
C# 6 及更高版本:簡化的閉包
C# 6 及後續版本使用 lambda 表達式和表達式體簡化了閉包建立。前面的範例可以簡潔地重寫為:
<code class="language-csharp">public Person FindById(int id) { return this.Find(p => p.Id == id); }</code>
總結
C# 閉包是非常寶貴的工具,透過將變數和函數封裝在 lambda 表達式和匿名方法中來增強程式碼靈活性和可重用性。 這會帶來更有效率、更可維護的應用程式。
以上是C# 中的閉包如何運作並增強程式碼可重複使用性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!