Rumah >pembangunan bahagian belakang >C++ >IEnumerable dan IEnumerator dalam C#: Bagaimana Mereka Mendayakan foreach Gelung dan Lelaran Tersuai?
Pemahaman mendalam tentang IEnumerable dan IEnumerator: mekanisme teras bagi .NET iterator
Dalam pengaturcaraan .NET, melaksanakan antara muka IEnumerable ialah kunci untuk mendayakan gelung foreach. Walaupun sintaks foreach adalah ringkas dan mudah digunakan, pergantungan asasnya adalah pada antara muka IEnumerable dan IEnumerator.
Senario aplikasi IEnumerable dan IEnumerator
IEnumerable tidak digunakan untuk "menggantikan" foreach, sebaliknya, melaksanakan IEnumerable adalah prasyarat untuk menggunakan foreach. Apabila anda menulis gelung foreach, pengkompil sebenarnya menukarnya kepada satu siri panggilan kepada kaedah MoveNext dan Current IEnumerator.
Perbezaan antara IEnumerable dan IEnumerator
Mengapa kita memerlukan IEnumerable dan IEnumerator?
melaksanakan IEnumerable
Untuk menjadikan kelas boleh lelar, anda perlu melaksanakan antara muka IEnumerable, yang memerlukan pelaksanaan kaedah GetEnumerator yang mengembalikan IEnumerator.
Contoh
Pertimbangkan kelas objek tersuai berikut yang melaksanakan antara muka IEnumerable:
<code class="language-csharp">public class CustomCollection : IEnumerable<int> { private int[] data; public IEnumerator<int> GetEnumerator() { return new CustomEnumerator(data); } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } private class CustomEnumerator : IEnumerator<int> { // MoveNext 和 Current 方法用于遍历 data } }</code>
Dengan melaksanakan IEnumerable dan menyediakan enumerator tersuai, anda kini boleh menggunakan gelung foreach untuk mengulangi kejadian CustomCollection.
Atas ialah kandungan terperinci IEnumerable dan IEnumerator dalam C#: Bagaimana Mereka Mendayakan foreach Gelung dan Lelaran Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!