ReadOnlySpan<T>.Enumerator 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ReadOnlySpan<T>의 요소에 대한 열거자를 제공합니다.
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
형식 매개 변수
- T
- 상속
설명
C# 언어 및 For Each의 C# foreach... Visual Basic의 다음 구문은 열거자의 복잡성을 숨깁니다. 열거자를 직접 조작하는 대신 사용 foreach
하거나 For Each...Next
사용하는 것이 좋습니다.
처음에는 열거자가 .의 첫 번째 요소 앞에 배치됩니다 ReadOnlySpan<T>. 이 위치에서 Current는 정의되지 않습니다. 의 값을 Current읽기 전에 열거자를 첫 번째 항목으로 ReadOnlySpan<T> 이동하려면 호출 MoveNext 해야 합니다.
Current 는 호출될 때까지 MoveNext 동일한 값을 반환합니다. MoveNext에서 다음 항목으로 ReadOnlySpan<T>설정합니다Current.
의 끝을 ReadOnlySpan<T>MoveNext 통과하면 MoveNext .를 반환합니다false
. 열거자가 이 상태에 있으면 후속 호출 MoveNext 도 반환 false
되고 Current 정의되지 않습니다. 다시 첫 번째 항목 ReadOnlySpan<T> 으로 설정할 Current 수 없습니다. 대신 새 열거자 인스턴스를 만들어야 합니다.
스택에 ReadOnlySpan<T> 할당되지만 가리키는 기본 데이터는 ReadOnlySpan<T> 할당되지 않을 수 있습니다. 따라서 a를 통해 ReadOnlySpan<T> 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다. 열거 중에 스레드 안전을 보장하려면 사용자 고유의 동기화를 구현해야 합니다.
.NET의 다른 열거자 구조와 달리 다음을 수행 ReadOnlySpan<T>.Enumerator합니다.
또는 IEnumerator<T> 인터페이스를 IEnumerator 구현하지 않습니다. 이는 ReadOnlySpan<T>.Enumerator ref 구조체 이므로 boxed할 수 없기 때문입니다.
범위의
Reset
첫 번째 요소 앞의 초기 위치로 열거자를 설정할 수 있는 메서드를 포함하지 않습니다. (메서드는 IEnumerator.Reset() 인터페이스의 일부로 구현되어야 하지만 대부분의 구현자는 예외를 throw하거나 구현을 제공하지 않습니다.)
속성
Current |
열거자의 현재 위치에 있는 항목에 대한 참조를 가져옵니다. |
메서드
MoveNext() |
열거자를 ReadOnlySpan<T>의 다음 항목으로 이동합니다. |