
gelung foreach dalam C#
Soalan:
Apakah jenis kelas yang membenarkan penggunaan gelung foreach?
Jawapan:
Secara teknikal, mana-mana kelas yang mempunyai kaedah awam bernama GetEnumerator() yang mengembalikan jenis dengan kaedah MoveNext() bool dan sifat Semasa boleh digunakan. Walau bagaimanapun, penjelasan yang paling biasa melibatkan kelas yang melaksanakan IEnumerable atau IEnumerable, mengembalikan IEnumerator atau IEnumerator.
Dengan sambungan, mana-mana kelas yang melaksanakan ICollection atau ICollection (cth., Collection, List, Array (T[])) boleh menyokong foreach gelung.
Cara ia berfungsi:
Gelung foreach berfungsi seperti berikut:
- Memulakan objek sementara (tmp) daripada kaedah GetEnumerator() bagi objek yang diberikan (obj).
- Selagi tmp.MoveNext() mengembalikan benar, badan gelung (dikelilingi oleh {...}) dilaksanakan berulang kali, mengandungi nilai semasa Semasa.
Variasi:
- Jika tmp menyokong IDisposable, gunakannya untuk melupuskan tmp apabila gelung selesai.
- C# 5.0 membenarkan pembolehubah seperti i diisytiharkan di dalam gelung, manakala dalam versi terdahulu mereka perlu diisytiharkan di luar gelung. Perbezaan ini menjadi kritikal apabila menggunakan i dalam kaedah tanpa nama atau ungkapan lambda di dalam gelung.
Atas ialah kandungan terperinci Apakah Jenis Kelas C# Menyokong Gelung Foreach?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn