ReadOnlySpan<T>.Enumerator Struktur
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan enumerator untuk elemen ReadOnlySpan<T>.
public: value class ReadOnlySpan<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure ReadOnlySpan(Of T).Enumerator
Jenis parameter
- T
- Warisan
- Penerapan
Keterangan
Bahasa C# foreach bahasa C# dan Untuk Setiap... Selanjutnya konstruksi di Visual Basic menyembunyikan kompleksitas enumerator. Alih-alih secara langsung memanipulasi enumerator, menggunakan foreach atau For Each...Next direkomendasikan.
Awalnya, enumerator diposisikan sebelum elemen pertama dalam ReadOnlySpan<T>. Pada posisi ini, Current tidak terdefinisi. Anda harus memanggil MoveNext untuk memajukan enumerator ke item pertama dalam ReadOnlySpan<T> sebelum membaca nilai Current.
Current mengembalikan nilai yang sama hingga MoveNext dipanggil. MoveNext Current diatur ke item berikutnya di ReadOnlySpan<T>.
Jika MoveNext melewati akhir ReadOnlySpan<T>, MoveNext mengembalikan false. Ketika enumerator berada pada status ini, panggilan berikutnya untuk MoveNext juga kembali false dan Current tidak terdefinisi. Anda tidak dapat mengatur Current ke item pertama di ReadOnlySpan<T> lagi; Anda harus membuat instans enumerator baru sebagai gantinya.
ReadOnlySpan<T> Meskipun dialokasikan pada tumpukan, data yang ReadOnlySpan<T> mendasar tempat titik, mungkin tidak. Oleh karena itu, menghitung melalui ReadOnlySpan<T> secara intrinsik bukan prosedur aman utas. Untuk menjamin keamanan utas selama enumerasi, Anda harus menerapkan sinkronisasi Anda sendiri.
Tidak seperti beberapa struktur enumerator lainnya di .NET, ReadOnlySpan<T>.Enumerator:
Tidak mengimplementasikan IEnumerator antarmuka atau IEnumerator<T> . Ini karena ReadOnlySpan<T>.Enumerator adalah struktur ref dan tidak dapat dikotak.
Tidak termasuk
Resetmetode, yang dapat mengatur enumerator ke posisi awal sebelum elemen pertama dalam rentang. (Metode IEnumerator.Reset() harus diimplementasikan sebagai bagian dari antarmuka, tetapi sebagian besar implementor melemparkan pengecualian atau tidak memberikan implementasi.)
Properti
| Nama | Deskripsi |
|---|---|
| Current |
Mendapatkan referensi ke item pada posisi enumerator saat ini. |
Metode
| Nama | Deskripsi |
|---|---|
| MoveNext() |
Memajukan enumerator ke item berikutnya dari ReadOnlySpan<T>. |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IDisposable.Dispose() |
Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola. |
| IEnumerator.Current |
Mendapatkan elemen dalam koleksi pada posisi enumerator saat ini. |
| IEnumerator.Reset() |
Mengatur enumerator ke posisi awalnya, yaitu sebelum elemen pertama dalam koleksi. |
| IEnumerator<T>.Current |
Mendapatkan elemen dalam koleksi pada posisi enumerator saat ini. |