首頁 >後端開發 >C++ >C# 中的閉包如何運作並增強程式碼可重複使用性?

C# 中的閉包如何運作並增強程式碼可重複使用性?

Patricia Arquette
Patricia Arquette原創
2025-01-08 08:07:40169瀏覽

How Do Closures Work and Enhance Code Reusability in C#?

掌握 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn