Aracılığıyla paylaş


EnumerableComCollection<TComEnumerator,TEnumerated> Sınıf

Tanım

COM stili IEnumXXX arabirimleri çevresinde IEnumerable sarmalayıcı sağlayan türler için genel temel sınıf.

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)

Tür Parametreleri

TComEnumerator

COM numaralandırıcı türü (örn. IEnumString)

TEnumerated

Tarafından numaralandırılmış TComEnumerator tür (örn. dize)

Devralma
EnumerableComCollection<TComEnumerator,TEnumerated>
Türetilmiş
Uygulamalar

Açıklamalar

Bu sınıftan türetilen sınıflar, COM stili bir IEnumXXX arabirimini foreach deyimi tarafından işlenebilen bir forma uyarlar. İdeal olarak bu genel sınıf, işi yapmak için türetilmiş bir sınıfa gerek kalmadan kendi başına yeterli olur, ancak C# genellerinin tanımlanması gereken titizlik bunu önler.

Bu sınıf, COM numaralandırıcısında sarmalayan yöntemleri çağırmalıdır (İleri, Atla vb.), ancak genel türler yalnızca parametreli türlerin kısıtlamalarında belirtilen parametreli türlerdeki özelliklere ve yöntemlere erişebilir. Özellikle, TComEnumerator.Next'i yalnızca derleyiciye TComEnumerator'ın İleri'yi uyguladığını söyleyen bir kısıtlama belirtirsek çağırabiliriz.

COM IEnumXXX arabirimleri kesin olarak türlenmiştir (örneğin, IEnumXXX.Next bir XXX nesnesi dizisi döndürür) ve ortak bir temel sınıfı yoktur, bu nedenle TComEnumerator'a doğrudan kısıtlama getiremiyoruz. Burada IComEnumeratorRelay devreye girer: EnumerableComCollection, türetilmiş sınıfının TComEnumerator'a kısıtlama getirmek zorunda kalmadan genel türün COM numaralandırıcısına çağırmasına olanak tanıyan kesin türetilmiş IComEnumeratorRelay arabirimini uygulamasını gerektirir.

Oluşturucular

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator)

Sağlanan numaralandırıcı için yeni bir örneğini EnumerableComCollection<TComEnumerator,TEnumerated> başlatır.

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator, Int32)

Sağlanan numaralandırıcı ve önbellek boyutu için yeni bir örneğini EnumerableComCollection<TComEnumerator,TEnumerated> başlatır.

Alanlar

DefaultCacheSize

Varsayılan önbellek boyutu.

Yöntemler

Clone(TComEnumerator, TComEnumerator)

Belirtilen numaralandırıcı ile öğeyi kopyalar.

GetEnumerator()

Numaralandırıcıyı alır.

NextItems(TComEnumerator, UInt32, TEnumerated[], UInt32)

Belirtilen öğe sayısını alır.

Reset(TComEnumerator)

Koleksiyonun sayacını sıfırlar.

Skip(TComEnumerator, UInt32)

Belirtilen öğe sayısını atlar.

Belirtik Arabirim Kullanımları

IEnumerable.GetEnumerator()

Numaralandırıcıyı alır.

Uzantı Metotları

EmptyIfNull<T>(IEnumerable<T>)

Null olmaması durumunda bu numaralandırmayı döndür. Null olması durumunda boş dönüş sabit listesi.

Şunlara uygulanır