Yang Hilang IEnumerable
Untuk Setiap Kaedah Sambungan dalam C#
C# termasuk penyataan foreach
, namun secara mengejutkan tiada kaedah sambungan ForEach
yang sepadan untuk antara muka IEnumerable
. Ketiadaan ini menimbulkan persoalan tentang reka bentuk dan potensi implikasinya.
Pertukaran Prestasi
Kecekapan pernyataan foreach
merupakan sebab utama peninggalan tersebut. Masa jalan .NET mengoptimumkan pelaksanaan gelung foreach
nya. Kaedah ForEach
berasaskan perwakilan mungkin memperkenalkan overhed prestasi daripada panggilan fungsi tambahan dan pengesahan jenis.
Kesederhanaan dan Kebolehbacaan
Kejelasan dan kebolehbacaan pernyataan foreach
juga merupakan faktor penting. Sintaksnya yang mudah meningkatkan pemahaman dan penyelenggaraan kod. Pendekatan berasaskan kaedah tambahan boleh menambah kerumitan yang tidak perlu dan mengurangkan kebolehbacaan.
Pernyataan lwn. Kaedah: Perbezaan Utama
Walaupun kenyataan foreach
sedia ada, kaedah ForEach
menawarkan potensi kelebihan:
foreach
melaksanakan semakan jenis masa jalan, manakala kaedah ForEach()
akan menawarkan semakan jenis masa kompilasi.ForEach()
akan menyediakan sintaks yang lebih ringkas: objects.ForEach(DoSomething)
.ForEach()
berpotensi mendayakan perantaian kaedah untuk operasi yang lebih kompleks.Kemungkinan Masa Depan
Walaupun kenyataan foreach
mengendalikan kebanyakan situasi dengan secukupnya, pasukan C# telah mengakui potensi manfaat kaedah ForEach
standard. Mereka telah menyatakan kesediaan untuk mempertimbangkan untuk menambahkannya dalam versi rangka kerja akan datang.
Atas ialah kandungan terperinci Mengapa C# Tidak Mempunyai Kaedah Sambungan ForEach untuk `IEnumerable`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!