Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Penutupan C# Mengakses Pembolehubah daripada Kaedah Induknya?

Bagaimanakah Penutupan C# Mengakses Pembolehubah daripada Kaedah Induknya?

DDD
Lepaskan: 2025-01-08 08:16:41
asal
749 orang telah melayarinya

How Do C# Closures Access Variables from Their Parent Methods?

Meneroka Penutupan C#: Mengakses Pembolehubah daripada Kaedah Melampirkan

Dalam pengaturcaraan, "penutupan" merujuk kepada fungsi yang mengekalkan akses kepada pembolehubah daripada skop sekelilingnya, walaupun selepas fungsi sekeliling selesai dilaksanakan. Dalam C#, ini sering dilaksanakan menggunakan kaedah tanpa nama atau ungkapan lambda. Ciri utama ialah keupayaan penutupan untuk "mengingat" pembolehubah daripada kaedah induknya.

Contoh C# Ilustrasi:

Pertimbangkan coretan kod ini:

<code class="language-csharp">public Person FindById(int id)
{
    return this.Find(delegate(Person p)
    {
        return (p.Id == id);
    });
}</code>
Salin selepas log masuk

Di sini, perwakilan tanpa nama dalam FindById mengakses pembolehubah id yang diisytiharkan dalam kaedah FindById. Ini menunjukkan keupayaan penutupan untuk menangkap dan mengekalkan akses kepada pembolehubah daripada skop yang disertakan.

Pembelajaran Lanjutan:

Untuk mengetahui penutupan yang lebih mendalam, rujuk sumber seperti tulisan Martin Fowler dan Jon Skeet mengenai subjek tersebut. Mereka menawarkan penjelasan dan contoh terperinci.

Memanfaatkan Sintaks C# 6:

C# 6 memperkenalkan sintaks yang lebih ringkas untuk penutupan menggunakan ungkapan lambda:

<code class="language-csharp">public Person FindById(int id)
{
    return this.Find(p => p.Id == id);
}</code>
Salin selepas log masuk

Ungkapan lambda ini mencapai kefungsian yang sama seperti perwakilan tanpa nama dalam contoh sebelumnya, tetapi dengan kebolehbacaan yang dipertingkatkan.

Sintaks Ringkas Setara:

Contoh di atas boleh dipermudahkan lagi menggunakan ungkapan anak panah:

<code class="language-csharp">public Person FindById(int id) => this.Find(p => p.Id == id);</code>
Salin selepas log masuk

Ini menunjukkan cara yang lebih padat untuk menentukan penutupan dalam C#.

Atas ialah kandungan terperinci Bagaimanakah Penutupan C# Mengakses Pembolehubah daripada Kaedah Induknya?. 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