Ungkapan C# Lambda: alat kod yang ringkas dan cekap
Walaupun ungkapan lambda C# kelihatan serupa dengan kaedah tanpa nama dan mempunyai sintaks yang lebih bersih, ia menawarkan kelebihan yang ketara.
Memudahkan penciptaan perwakilan tanpa nama
Ekspresi Lambda menyediakan sintaks yang lebih diperkemas untuk mencipta perwakilan tanpa nama. Ia boleh digunakan dalam mana-mana senario di mana perwakilan tanpa nama boleh digunakan.
Pokok ekspresi dan kuasa LINQ
Tidak seperti perwakilan tanpa nama, ungkapan lambda boleh ditukar menjadi pepohon ekspresi. Ini membolehkan ciri berkuasa seperti LINQ ke SQL, yang membolehkan ungkapan C# ditukar kepada pertanyaan SQL untuk interaksi lancar dengan pangkalan data.
Contoh: Sintaks LINQ yang dipertingkatkan
Kod berikut menunjukkan penggunaan perwakilan tanpa nama dan ungkapan lambda dalam ekspresi LINQ kepada Objek, menyerlahkan kebolehbacaan ekspresi lambda yang dipertingkatkan:
<code class="language-csharp">// 匿名委托 var evens = Enumerable.Range(1, 100).Where(delegate(int x) { return (x % 2) == 0; }).ToList(); // Lambda 表达式 var evens = Enumerable.Range(1, 100).Where(x => (x % 2) == 0).ToList();</code>
Sokongan penutupan
Kedua-dua ungkapan Lambda dan perwakilan tanpa nama menyokong penutupan, membenarkan keadaan setempat dihantar ke fungsi tanpa memerlukan parameter tambahan atau objek pakai buang.
Kelebihan pokok ekspresi
Pokok ungkapan menyediakan mekanisme yang berkuasa untuk memeriksa struktur ungkapan, bukannya hanya mendapatkan rujukan kepada kaedah boleh laku. API boleh mendedahkan parameter perwakilan sebagai pepohon ekspresi, membolehkan pengkompil menjana pepohon ekspresi daripada ungkapan lambda dan bukannya perwakilan tanpa nama.
Ringkasan
Ekspresi Lambda, digabungkan dengan kuasa pokok ekspresi, menawarkan kelebihan ketara berbanding kaedah tradisional dan perwakilan tanpa nama. Sintaksnya yang dipermudahkan, sokongan untuk penutupan, dan kuasa LINQ menjadikannya alat penting dalam kit alat pembangun C#. Menggunakan ungkapan lambda boleh meningkatkan kebolehbacaan kod, fleksibiliti dan kecekapan.
Atas ialah kandungan terperinci Mengapa Pilih Ungkapan C# Lambda Daripada Kaedah Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!