EnumerableComCollection<TComEnumerator,TEnumerated> 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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이면 빈 열거형을 반환합니다. |