首頁 > 後端開發 > C++ > C# 的 Lambda 運算子如何簡化委託建立和表達式主體成員?

C# 的 Lambda 運算子如何簡化委託建立和表達式主體成員?

Linda Hamilton
發布: 2025-01-11 19:56:42
原創
686 人瀏覽過

How Can C#'s Lambda Operator Simplify Delegate Creation and Expression-Bodied Members?

深入理解C#中的Lambda運算子

C#中的Lambda運算子("=>")是一種強大的語法糖,它簡化了匿名委託和表達式主體的建立。

Lambda表達式

Lambda表達式為匿名方法提供了一種更簡潔的替代方案,無需明確聲明委託。它們通常用作委託類型的Lambda參數,例如Func<T, TResult>Action<T>

例如,建立一個回傳人員姓名的委託:

傳統委託寫法:

<code class="language-csharp">Func<Person, string> nameProjection = delegate (Person p) { return p.Name; };</code>
登入後複製

使用Lambda語法簡化:

<code class="language-csharp">Func<Person, string> nameProjection = p => p.Name;</code>
登入後複製

表達式主體成員

從C# 6開始,Lambda語法擴展到支援屬性和方法的表達式主體成員。這允許使用簡化的表達式定義屬性或方法的實現,而無需使用傳統的程式碼區塊。

例如,定義一個IsValid屬性,檢查人員姓名是否非空且ID不為-1:

<code class="language-csharp">public int IsValid => name != null && id != -1;</code>
登入後複製

同樣,可以使用Lambda語法實作GetHashCode方法:

<code class="language-csharp">public int GetHashCode() => id.GetHashCode();</code>
登入後複製

更多學習資源

深入學習:

  • 匿名方法和Lambda表達式的差別?
  • 什麼是Lambda表達式?
  • 為什麼在C#中應該使用Lambda表達式?

以上是C# 的 Lambda 運算子如何簡化委託建立和表達式主體成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板