委託關鍵字與Lambda 表示法
在C# 中,出現一個關於兩個lambda 表達式的等價性的常見問題:
<code class="csharp">delegate { x = 0; } () = > { x = 0 }</code>
編譯後它們的功能相同嗎?
答:
簡而言之,不。它們在語法上是等效的,但產生的委託類型有所不同。
深入研究:
雖然 delegate 關鍵字傳統上建立匿名委託,但將 lambda 與 delegate 關鍵字一起使用會產生也是匿名代表。但是,將 lambda 指派給表達式類型會建立一個表達式樹,隨後可以將其編譯為匿名委託。
高級注意事項:
這些表示法之間的選擇取決於預期用途:
以上是C# 中的委託關鍵字和 lambda 表示法在功能上是否相同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!