EnumerableComCollection<TComEnumerator,TEnumerated> Kelas
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.
Kelas dasar generik untuk jenis yang menyediakan pembungkus IEnumerable di sekitar antarmuka IEnumXXX gaya COM.
generic <typename TComEnumerator, typename TEnumerated>
public ref class EnumerableComCollection abstract : Microsoft::VisualStudio::Shell::IComEnumeratorRelay<TComEnumerator, TEnumerated>, System::Collections::Generic::IEnumerable<TEnumerated>
public abstract class EnumerableComCollection<TComEnumerator,TEnumerated> : Microsoft.VisualStudio.Shell.IComEnumeratorRelay<TComEnumerator,TEnumerated>, System.Collections.Generic.IEnumerable<TEnumerated>
type EnumerableComCollection<'ComEnumerator, 'Enumerated> = class
interface seq<'Enumerated>
interface IEnumerable
interface IComEnumeratorRelay<'ComEnumerator, 'Enumerated>
Public MustInherit Class EnumerableComCollection(Of TComEnumerator, TEnumerated)
Implements IComEnumeratorRelay(Of TComEnumerator, TEnumerated), IEnumerable(Of TEnumerated)
Jenis parameter
- TComEnumerator
Jenis enumerator COM (misalnya IEnumString)
- TEnumerated
Jenis yang dijumlahkan oleh TComEnumerator
(misalnya string)
- Warisan
-
EnumerableComCollection<TComEnumerator,TEnumerated>
- Turunan
- Penerapan
Keterangan
Kelas yang berasal dari kelas ini mengadaptasi antarmuka IEnumXXX gaya COM menjadi bentuk yang dapat diproses oleh pernyataan foreach. Idealnya kelas generik ini akan cukup sendiri tanpa perlu kelas turunan untuk melakukan pekerjaan, tetapi kekakuan yang dengannya generik C# harus didefinisikan mencegahnya.
Kelas ini harus memanggil metode pada enumerator COM yang dibungkusnya (Berikutnya, Lewati, dll.), tetapi jenis generik hanya dapat mengakses properti dan metode pada jenis parameternya yang ditentukan dalam batasan jenis parameter. Secara khusus, kita hanya dapat memanggil TComEnumerator.Berikutnya jika kita menentukan batasan pada TComEnumerator yang memberi tahu kompilator yang diterapkan TComEnumerator Berikutnya.
Antarmuka COM IEnumXXX diketik dengan kuat (yaitu IEnumXXX.Next mengembalikan array objek XXX) dan tidak memiliki kelas dasar umum, sehingga kami tidak dapat menempatkan batasan pada TComEnumerator secara langsung. Di sinilah IComEnumeratorRelay masuk: EnumerableComCollection mengharuskan kelas turunannya mengimplementasikan antarmuka IComEnumeratorRelay yang diketik dengan kuat yang memungkinkan jenis generik untuk memanggil ke enumerator COM tanpa harus menempatkan batasan pada TComEnumerator.
Konstruktor
EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator) |
Menginisialisasi instans EnumerableComCollection<TComEnumerator,TEnumerated> baru untuk enumerator yang disediakan. |
EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator, Int32) |
Menginisialisasi instans EnumerableComCollection<TComEnumerator,TEnumerated> baru untuk ukuran enumerator dan cache yang disediakan. |
Bidang
DefaultCacheSize |
Ukuran cache default. |
Metode
Clone(TComEnumerator, TComEnumerator) |
Mengkloning item dengan enumerator yang ditentukan . |
GetEnumerator() |
Mendapatkan enumerator. |
NextItems(TComEnumerator, UInt32, TEnumerated[], UInt32) |
Mendapatkan jumlah item yang ditentukan. |
Reset(TComEnumerator) |
Mengatur ulang penghitung koleksi. |
Skip(TComEnumerator, UInt32) |
Melompati jumlah item yang ditentukan. |
Implementasi Antarmuka Eksplisit
IEnumerable.GetEnumerator() |
Mendapatkan enumerator. |
Metode Ekstensi
EmptyIfNull<T>(IEnumerable<T>) |
Kembalikan enumerasi ini jika tidak null. Jika null mengembalikan enumerasi kosong. |