EnumerableComCollection<TComEnumerator,TEnumerated> Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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. |