다음을 통해 공유


EnumerableComCollection<TComEnumerator,TEnumerated> 클래스

정의

COM 스타일 IEnumXXX 인터페이스를 중심으로 IEnumerable 래퍼를 제공하는 형식에 대한 제네릭 기본 클래스입니다.

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)

형식 매개 변수

TComEnumerator

COM 열거자 유형(예: IEnumString)

TEnumerated

로 열거된 TComEnumerator 형식(예: 문자열)

상속
EnumerableComCollection<TComEnumerator,TEnumerated>
파생
구현

설명

이 클래스에서 파생된 클래스는 COM 스타일 IEnumXXX 인터페이스를 foreach 문으로 처리할 수 있는 형식으로 조정합니다. 이상적으로 이 제네릭 클래스는 파생 클래스가 작업을 수행할 필요 없이 자체적으로 충분하지만 C# 제네릭을 정의해야 하는 엄격하면 이를 방지할 수 있습니다.

이 클래스는 래핑하는 COM 열거자(Next, Skip 등)에서 메서드를 호출해야 하지만 제네릭 형식은 매개 변수가 있는 형식의 제약 조건에 지정된 매개 변수가 있는 형식의 속성 및 메서드에만 액세스할 수 있습니다. 특히 TComEnumerator에서 TComEnumerator가 다음을 구현한다는 것을 컴파일러에 알리는 제약 조건을 지정하는 경우에만 TComEnumerator.Next를 호출할 수 있습니다.

COM IEnumXXX 인터페이스는 강력한 형식(예: IEnumXXX.Next는 XXX 개체의 배열을 반환)이며 공통 기본 클래스가 없으므로 TComEnumerator에 제약 조건을 직접 배치할 수 없습니다. 여기서 IComEnumeratorRelay가 제공됩니다. EnumerableComCollection에서는 파생 클래스가 강력한 형식의 IComEnumeratorRelay 인터페이스를 구현해야 합니다. 이 인터페이스를 사용하면 제네릭 형식이 TComEnumerator에 제약 조건을 배치하지 않고도 COM 열거자를 호출할 수 있습니다.

생성자

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator)

제공된 열거자에 대한 의 EnumerableComCollection<TComEnumerator,TEnumerated> 새 instance 초기화합니다.

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator, Int32)

제공된 열거자 및 캐시 크기에 대한 의 EnumerableComCollection<TComEnumerator,TEnumerated> 새 instance 초기화합니다.

필드

DefaultCacheSize

기본 캐시 크기입니다.

메서드

Clone(TComEnumerator, TComEnumerator)

지정된 열거자를 사용하여 항목을 복제합니다.

GetEnumerator()

열거자를 가져옵니다.

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

지정된 수의 항목을 가져옵니다.

Reset(TComEnumerator)

컬렉션의 카운터를 다시 설정합니다.

Skip(TComEnumerator, UInt32)

지정된 수의 항목을 건너뜁니다.

명시적 인터페이스 구현

IEnumerable.GetEnumerator()

열거자를 가져옵니다.

확장 메서드

EmptyIfNull<T>(IEnumerable<T>)

null이 아닌 경우 이 열거형을 반환합니다. null이면 빈 열거형을 반환합니다.

적용 대상