Delegasikan Kata Kunci lwn. Notasi Lambda: Adakah Mereka Boleh Ditukar?
Bahasa pengaturcaraan moden selalunya menyediakan berbilang cara untuk menyatakan pengiraan yang sama. Dalam C#, notasi lambda dan kata kunci perwakilan ialah dua pilihan popular. Perbincangan ini meneroka kesetaraan dan nuansanya.
notasi lambda:
<code class="csharp">() => { x = 0; }</code>
kata kunci perwakilan:
<code class="csharp">delegate { x = 0; }</code>
Adakah Mereka Benar-Benar Setaraf?
Dari segi tingkah laku yang terhasil, jawapannya adalah tidak. Kedua-dua notasi menghasilkan perwakilan tanpa nama yang memberikan 0 kepada pembolehubah x.
Perbezaan Halus (Tidak Relevan dengan Soalan Anda):
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika anda menetapkan lambda kepada jenis perwakilan (cth., Func atau Action), anda memperoleh perwakilan tanpa nama. Sebaliknya, jika anda menetapkannya kepada jenis Ungkapan, anda mendapat pepohon ungkapan sebaliknya, yang boleh disusun menjadi perwakilan tanpa nama. Pokok ungkapan tidak melaksanakan secara langsung seperti yang dilakukan oleh perwakilan tanpa nama.
Sumber Tambahan pada Ungkapan:
Atas ialah kandungan terperinci Notasi Lambda lwn. Kata Kunci Perwakilan: Bolehkah Mereka Digunakan Bergantian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!