委託關鍵字與 Lambda 表示法:它們可以互換嗎?
現代程式語言通常提供多種方式來表達相同的計算。在 C# 中,lambda 表示法和 delegate 關鍵字是兩個受歡迎的選項。本討論探討了它們的等價性和細微差別。
lambda 表示法:
<code class="csharp">() => { x = 0; }</code>
委託關鍵字:
<code class="csharp">delegate { x = 0; }</code>
等價嗎?
就結果行為而言,答案是響亮的不
。這兩種表示法都會產生將 0 賦給變數 x 的匿名委託。細微差別(與您的問題無關):
但是,請務必注意,如果將lambda 分配給委託類型(例如Func 或Action),您將獲得匿名委託。相反,如果將其指派給表達式類型,則會得到一個表達式樹,它可以編譯為匿名委託。表達式樹不像匿名委託那樣直接執行。有關表達式的其他資源:
以上是Lambda 表示法與委託關鍵字:它們可以互換使用嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!