Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Penutupan C# Membolehkan Akses kepada Pembolehubah daripada Melampirkan Skop?
Pemahaman mendalam tentang penutupan C#
Penutupan dalam C# ialah ciri berkuasa yang membolehkan fungsi bersarang mengakses pembolehubah dalam skop lampirannya. Penutupan ialah asas perwakilan sebaris .NET dan kaedah tanpa nama, membenarkan fungsi tanpa nama mengekalkan pembolehubah daripada kaedah induk.
Penutupan C# biasanya muncul dalam bentuk perwakilan sebaris atau kaedah tanpa nama. Apabila ditakrifkan dalam kaedah induk, fungsi tanpa nama ini boleh mengakses pembolehubah yang diisytiharkan dalam badan kaedah induknya.
Permohonan penutupan
Contoh berikut menunjukkan cara kaedah FindById
menggunakan penutupan untuk mencari Person
objek berdasarkan ID mereka:
<code class="language-csharp">public Person FindById(int id) { return this.Find(delegate(Person p) { return (p.Id == id); }); }</code>
Fungsi tanpa nama di sini bertindak sebagai predikat, yang menilai objek Person
untuk menentukan sama ada IDnya sepadan dengan parameter id
yang disediakan.
Ekspresi Lambda
Dalam C# 6 dan ke atas, ungkapan Lambda menyediakan sintaks yang lebih ringkas untuk mentakrifkan penutupan:
<code class="language-csharp">public Person FindById(int id) { return this.Find(p => p.Id == id); }</code>
Ungkapan Lambda ini bersamaan dengan perwakilan tanpa nama di atas dan juga merupakan penutup.
Ringkasan
Penutupan dalam C# ialah mekanisme berkuasa yang membenarkan fungsi bersarang untuk mengakses pembolehubah dalam skop yang disertakan. Dengan memanfaatkan korelasi ini antara fungsi ibu bapa dan anak, penutupan membolehkan kami mencipta aplikasi yang lebih fleksibel dan lebih mudah diselenggara. Sama ada anda memilih kaedah tanpa nama tradisional atau ungkapan lambda moden, penutupan boleh meningkatkan kemahiran pengaturcaraan C# anda.
Atas ialah kandungan terperinci Bagaimanakah Penutupan C# Membolehkan Akses kepada Pembolehubah daripada Melampirkan Skop?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!