Rumah > pembangunan bahagian belakang > C++ > Adakah Terdapat Perbezaan Fungsian Antara Notasi Lambda dan Kata Kunci Perwakilan dalam C#?

Adakah Terdapat Perbezaan Fungsian Antara Notasi Lambda dan Kata Kunci Perwakilan dalam C#?

DDD
Lepaskan: 2024-10-29 06:43:31
asal
485 orang telah melayarinya

Is There a Functional Difference Between Lambda Notation and the Delegate Keyword in C#?

Delegate Invocation: Lambda Notation vs. Delegate Keyword

Dalam C#, ekspresi lambda dan kata kunci perwakilan menawarkan sintaks alternatif untuk mencipta kaedah tanpa nama. Setelah disusun, adakah terdapat perbezaan yang boleh dilihat antara dua notasi berikut?

delegate { x = 0; }
Salin selepas log masuk

dan

() => { x = 0; }
Salin selepas log masuk

Jawapan: Tiada Perbezaan Fungsian

Pada peringkat binari, kedua-dua notasi lambda dan kata kunci perwakilan menghasilkan perwakilan tanpa nama yang setara. Ia boleh digunakan secara bergantian dan mempamerkan gelagat masa jalan yang sama.

Pertimbangan Tambahan:

  • Apabila menetapkan lambda kepada jenis perwakilan (cth., Fungsi atau Tindakan ), perwakilan tanpa nama dibuat secara langsung.
  • Menetapkan lambda kepada jenis Ungkapan, sebaliknya, menghasilkan pokok ungkapan dan bukannya perwakilan tanpa nama. Pokok ungkapan ini kemudiannya boleh disusun untuk mencipta perwakilan tanpa nama.

Pokok Ungkapan dan LINQ:

Dalam konteks LINQ, memahami pokok ungkapan adalah penting . Operasi LINQ dalam ingatan (cth., menggunakan Enumerable) menggunakan perwakilan, manakala operasi LINQ dengan sumber data luaran (cth., SQL) menggunakan pepohon ekspresi.

Untuk mendapatkan cerapan dan sumber lanjut tentang pepohon ekspresi, rujuk pautan berikut :

  • [System.Linq.Expression.Expression(TDelegate)](https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expression)
  • [Linq dalam memori dengan perwakilan (System.Func) lwn. Linq ke SQL dengan ungkapan (System.Linq.Queryable)](https://stackoverflow.com/questions/9289889/linq-in-memory -with-delegates-system-func-vs-linq-to-sql-with-expressions-syst)
  • [Penjelasan daripada ScottGu](https://weblogs.asp.net/scottgu/a- pandang-depan-di-linq)

Atas ialah kandungan terperinci Adakah Terdapat Perbezaan Fungsian Antara Notasi Lambda dan Kata Kunci Perwakilan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan