Logo ms.removalsclassifieds.com

Perbezaan Antara IEnumerable dan IEnumerator (Dengan Jadual)

Isi kandungan:

Anonim

IEnumerable dan IEnumerator adalah kedua-dua antara muka yang tersedia dalam C#. Yang pertama adalah modul, sedangkan yang terakhir adalah objek.

IEnumerable menghasilkan IEnumerator. Di sini GetEnumerator digunakan untuk mendapatkan IEnumerator. Gelung Foreach digunakan untuk menjana kod yang menggunakan Enumerator. Enumerator adalah berbeza daripada IEnumerator kerana IEnumerator ialah antara muka. Enumerator melaksanakannya.

IEnumerable vs IEnumerator

Perbezaan antara IEnumerable dan IEnumerator ialah IEnumerable berfungsi untuk antara muka generik dan IEnumerator berfungsi untuk semua antara muka bukan generik. IEnumerable menunjuk ke objek yang boleh dikira, tetapi IEnumerator dilaksanakan menggunakan setiap pernyataan untuk lelaran. Antara muka IEnumerable menggunakan IEnumerator untuk lelaran semua elemen yang digunakan untuk setiap pernyataan.

IEnumerable digunakan untuk mencari objek yang digunakan sebagai antara muka. Ia digunakan untuk lelaran semua elemen dalam koleksi. Proses lelaran menjadikannya lebih mudah untuk dilalui dalam koleksi. Ia bertindak sebagai objek. GetEnumerator ialah kaedah yang digunakan untuk pelaksanaan antara muka IEnumerator.

IEnumerator mempunyai dua kaedah, Reset() dan MoveNext(), dan mempunyai sifat lanjutan yang dikenali sebagai Current. MoveNext() ialah kaedah yang menghasilkan nilai Boolean yang menunjukkan elemen akhir senarai. Kaedah set semula menjadikan enumerator kedudukan lalainya.

Jadual Perbandingan Antara IEnumerable dan IEnumerator

Parameter Perbandingan

IEnumerable

IEnumerator

Jenis Antara Muka Generik Bukan generik
Bilangan Kaedah satu dua
Pulangan IEnumerator tiada
Keadaan Kursor Tidak boleh mengekalkan Boleh kekalkan
produk Objek terhitung Bagi setiap keputusan pernyataan
Cara Penulisan abstrak konkrit

Apakah IEnumerable?

Ini adalah antara muka yang dilaksanakan oleh kelas yang boleh dikira. Seluruh koleksi dalam c# boleh melaksanakan antara muka IEnumerable. Ia mengembalikan IEnumerator. Ia tidak berubah mengikut penentu akses yang digunakan dalam kod. IEnumerable mempunyai kaedah yang dikenali sebagai GetEnumerator. Pelaksanaan ini hanya dilakukan di dalam kelas.

Proses lelaran menjadikannya lebih mudah untuk dilalui dalam koleksi. Ia bertindak sebagai objek. GetEnumerator ialah kaedah yang digunakan untuk pelaksanaan antara muka IEnumerator. IEnumerable sering dikenali sebagai antara muka generik kerana kod itu ditulis dengan sangat kecil kerana ia hanya memerlukan pelaksanaan sekali sahaja. Tidak kira berapa banyak pembina yang digunakan dalam pelaksanaan kod untuk mengulang semua elemen.

Kod ini mempunyai penyelenggaraan yang rendah kerana pengubahsuaian kepada kod berada di bawah satu platform dan tidak memerlukan sebarang perubahan tambahan. Ia menggunakan abstraksi untuk lelaran semua elemen dalam tatasusunan. Ia menggunakan iterator IEnumerator yang digunakan untuk lelaran semua elemen. Memandangkan ia adalah kelas generik, ia dengan mudah melakukan lelaran unsur-unsur dalam tatasusunan. Ia menyediakan antara muka biasa. Ia digunakan dalam semua kelas bukan generik.

Apakah IEnumerator?

Ia mempunyai dua kaedah untuk melaksanakan lelaran semua elemen dalam koleksi. Ia mempunyai dua kaedah iaitu MoveNext dan Reset. MoveNext ialah kaedah yang menunjukkan bahawa lelaran belum mencapai elemen terakhir koleksi.

Kaedah tetapan semula melakukan perkara yang sama seperti kedengarannya. Ia menunjukkan untuk memulakan semula lelaran selepas lelaran sebelumnya dilakukan sehingga elemen terakhir tatasusunan. Terakhir, satu objek ialah Semasa, yang memberikan elemen semasa sebagai hasil lelaran. Ia mempunyai beberapa akses khusus kepada elemennya. Ia hanya menyediakan akses baca sahaja kepada semua tatasusunannya.

IEnumerator memanggil harta semasa, yang mempunyai tanggungjawab untuk mengembalikan elemen dalam senarai yang sedang digunakan. Ia menggunakan dua kaedah dan harta untuk lelaran objek. Setiap pernyataan menggunakan senarai tatasusunan dan memulakan lelaran dengan bergerak ke hadapan dan menggunakan salah satu kaedah. IEnumerator tidak boleh mengembalikan IEnumerable.

Ia boleh mendapatkan kembali keadaan semasa kursor dengan mudah. IEnumerator menggunakan cara penulisan yang konkrit. Ia memulakan lelaran dalam tindanan dengan melelaran elemen pertama tindanan dan berakhir pada elemen terakhir tindanan.

Perbezaan Utama Antara IEnumerable dan IEnumerator

Kesimpulan

IEnumerable ialah antara muka yang dilaksanakan oleh kelas enumerable. Ia menggunakan abstraksi untuk lelaran semua elemen dalam tatasusunan. Ia menggunakan iterator IEnumerator yang digunakan untuk lelaran semua elemen. IEnumerator memanggil harta semasa, yang mempunyai tanggungjawab untuk mengembalikan elemen dalam senarai yang sedang digunakan.

Ia menggunakan dua kaedah dan harta untuk lelaran objek. IEnumerable sering dikenali sebagai antara muka generik kerana kod tersebut ditulis dengan lebih kecil. IEnumerator menggunakan cara penulisan yang konkrit. GetEnumerator ialah kaedah yang digunakan untuk pelaksanaan antara muka IEnumerator.

Proses lelaran menjadikannya lebih mudah untuk melintasi dalam koleksi dalam IEnumerable. Ia bertindak sebagai objek. MoveNext ialah kaedah yang menghasilkan nilai Boolean yang menunjukkan elemen akhir senarai. IEnumerable mengembalikan antara muka IEnumerator apabila ia menjalani proses lelaran.

Kedua-duanya digunakan untuk proses lelaran, yang mengikut cara lelaran yang berbeza. Ia menggunakan iterator untuk melelaran semua elemen dalam tatasusunan timbunan. Ia berbeza antara satu sama lain kerana satu menggunakan abstraksi dan satu lagi menggunakan kod konkrit. Ia mempunyai kaedah dan sifat yang berbeza untuk mendapatkan kembali keadaan kursornya dan mengekalkan lelaran tindanan.

Perbezaan Antara IEnumerable dan IEnumerator (Dengan Jadual)