foreach
Gelung C# dan PelaksanaannyaKelas Mana yang Menggunakan foreach
Gelung?
Gelung foreach
dalam C# banyak digunakan dengan kelas yang melaksanakan IEnumerable
atau IEnumerable<T>
. Ini termasuk mana-mana kelas yang menyediakan kaedah GetEnumerator()
yang mengembalikan IEnumerator
atau IEnumerator<T>
. Pada asasnya, ini merangkumi semua kelas yang melaksanakan ICollection
atau ICollection<T>
, seperti tatasusunan, senarai dan koleksi lain.
foreach
Mekanik Gelung:
Gelung foreach
standard (mis., foreach (int i in obj) { ... }
) secara fungsinya menyerupai ini:
<code class="language-csharp">var tmp = obj.GetEnumerator(); int i; // C# 4.0 and earlier while (tmp.MoveNext()) { int i; // C# 5.0 and later i = tmp.Current; { ... } // Loop body }</code>
Pertimbangan penting: Jika enumerator (tmp
) melaksanakan IDisposable
, ia akan dilupuskan (serupa dengan pernyataan using
). Pengisytiharan int i
berbeza bergantung pada versi C#. Dalam C# 5.0 dan kemudian, ia diisytiharkan di dalam gelung; versi terdahulu mengisytiharkannya di luar. Perbezaan ini penting apabila menggunakan i
dalam kaedah tanpa nama atau ungkapan lambda di dalam gelung.
Atas ialah kandungan terperinci Bagaimanakah Foreach Loops berfungsi dalam C#, dan Kelas Mana yang Melaksanakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!