ReadOnlySpan<T>.Enumerator 구조체

정의

ReadOnlySpan<T>의 요소에 대한 열거자를 제공합니다.Provides an enumerator for the elements of a ReadOnlySpan<T>.

public: value class ReadOnlySpan<T>::Enumerator
public struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator

형식 매개 변수

T
상속
ReadOnlySpan<T>.Enumerator

설명

C # foreachFor Each ... Visual Basic의 다음 구문은 열거자의 복잡성을 숨깁니다.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. 열거자를 직접 조작 하는 대신 또는를 사용 하는 foreach For Each...Next 것이 좋습니다.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

처음에는 열거자가의 첫 번째 요소 앞에 배치 됩니다 ReadOnlySpan<T> .Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. 이 위치에서 Current는 정의되지 않습니다.At this position, Current is undefined. MoveNext의 값을 읽기 전에를 호출 하 여 열거자를의 첫 번째 항목으로 이동 해야 합니다 ReadOnlySpan<T> Current .You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current 가 호출 될 때까지 같은 값을 반환 합니다 MoveNext .Current returns the same value until MoveNext is called. MoveNextCurrent에서 다음 항목으로 설정 ReadOnlySpan<T> 합니다.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

MoveNext 의 끝을 통과 하면 ReadOnlySpan<T>MoveNext 반환 false 됩니다.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. 열거자가이 상태에 있는 경우에 대 한 후속 호출 MoveNext 도을 반환 false 하 고 Current 는 정의 되지 않습니다.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Current의 첫 번째 항목으로를 다시 설정할 수 없습니다. ReadOnlySpan<T> 대신 새 열거자 인스턴스를 만들어야 합니다.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

ReadOnlySpan<T> 스택에서 할당 되지만가 가리키는 기본 데이터는 ReadOnlySpan<T> 일 수 없습니다.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. 따라서을 통해 열거 하 ReadOnlySpan<T> 는 것은 기본적으로 스레드로부터 안전한 프로시저가 아닙니다.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. 열거 하는 동안 스레드로부터의 안전을 보장 하려면 고유한 동기화를 구현 해야 합니다.To guarantee thread safety during enumeration, you must implement your own synchronization.

.NET의 다른 일부 열거자 구조와 달리 ReadOnlySpan<T>.Enumerator 다음과 같이 합니다.Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • 는 또는 인터페이스를 구현 하지 않습니다 IEnumerator IEnumerator<T> .Does not implement the IEnumerator or IEnumerator<T> interface. ReadOnlySpan<T>.Enumeratorref 구조체 이며 boxing 할 수 없기 때문입니다.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • Reset 범위에서 첫 번째 요소 앞의 초기 위치로 열거자를 설정할 수 있는 메서드를 포함 하지 않습니다.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. 메서드는 IEnumerator.Reset() 인터페이스의 일부로 구현 되어야 하지만 대부분의 구현자 예외를 throw 하거나 구현을 제공 하지 않습니다.(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

속성

Current

열거자의 현재 위치에 있는 항목에 대한 참조를 가져옵니다.Gets a reference to the item at the current position of the enumerator.

메서드

MoveNext()

열거자를 ReadOnlySpan<T>의 다음 항목으로 이동합니다.Advances the enumerator to the next item of the ReadOnlySpan<T>.

적용 대상