首頁  >  文章  >  後端開發  >  Lambda 表示法與委託關鍵字:它們可以互換使用嗎?

Lambda 表示法與委託關鍵字:它們可以互換使用嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 01:51:29710瀏覽

  Lambda Notation vs. Delegate Keyword: Can They Be Used Interchangeably?

委託關鍵字與 Lambda 表示法:它們可以互換嗎?

現代程式語言通常提供多種方式來表達相同的計算。在 C# 中,lambda 表示法和 delegate 關鍵字是兩個受歡迎的選項。本討論探討了它們的等價性和細微差別。

lambda 表示法:

<code class="csharp">() => { x = 0; }</code>

委託關鍵字:

<code class="csharp">delegate { x = 0; }</code>

等價嗎?

就結果行為而言,答案是響亮的

。這兩種表示法都會產生將 0 賦給變數 x 的匿名委託。

細微差別(與您的問題無關):

但是,請務必注意,如果將lambda 分配給委託類型(例如Func 或Action),您將獲得匿名委託。相反,如果將其指派給表達式類型,則會得到一個表達式樹,它可以編譯為匿名委託。表達式樹不像匿名委託那樣直接執行。

有關表達式的其他資源:

  • System.Linq.Expression.Expression(TDelegate)
  • 使用委託連結到記憶體中LINQ
  • ScottGu 解釋記憶體中LINQ 與實體框架之間的差異

以上是Lambda 表示法與委託關鍵字:它們可以互換使用嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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