深入理解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>
更多學習資源
深入學習:
以上是C# 的 Lambda 運算子如何簡化委託建立和表達式主體成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!