Bagikan melalui


EnumerableComCollection<TComEnumerator,TEnumerated> Kelas

Definisi

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.

Berlaku untuk