ActivityCollection.GetEnumerator 메서드

정의

ICollection에 대한 열거형 인터페이스를 구현합니다.Implements an enumeration interface to the ICollection.

public:
 System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator ();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)

반환

ReadOnlyCollectionBase 인스턴스에서 반복할 수 있는 열거자입니다.An enumerator that can iterate through the ReadOnlyCollectionBase instance.

구현

설명

열거자에서는 컬렉션의 데이터를 읽기만 할 수 있습니다.Enumerators only enable reading the data in the collection. 열거자를 사용하여 내부 컬렉션을 수정할 수 없습니다.You cannot use enumerators to modify the underlying collection.

처음에는 열거자가 컬렉션의 첫 번째 요소 앞에 위치합니다.To begin, the enumerator is positioned before the first element in the collection. Reset을 실행하면 열거자가 이 위치로 복원됩니다.Reset also brings the enumerator back to this position. 여기에서 Current를 호출하면 예외가 발생합니다.At this position, calling Current raises an exception. 따라서 MoveNext의 값을 읽기 전에 Current를 호출하여 열거자를 해당 컬렉션의 첫 번째 요소로 보내야 합니다.Therefore, you must call MoveNext to advance the enumerator to the first element of the collection before reading the value of Current.

Current에서는 MoveNext 또는 Reset이 호출될 때까지 동일한 개체를 반환합니다.Current returns the same object until either MoveNext or Reset is called. MoveNextCurrent를 다음 요소로 설정합니다.MoveNext sets Current to the next element.

컬렉션의 끝이 전달된 후 열거자는 컬렉션의 마지막 요소 뒤에 배치되고 MoveNext를 호출하면 false가 반환됩니다.After the end of the collection is passed, the enumerator is positioned after the last element in the collection, and calling MoveNext returns false. MoveNext에 대한 마지막 호출에서 false가 반환된 경우 Current를 호출하면 예외가 발생합니다.If the last call to MoveNext returned false, calling Current raises an exception.

Current를 컬렉션의 첫째 요소에 다시 설정하려면 Reset을 호출한 뒤 MoveNext를 호출해야 합니다.To set Current to the first element of the collection again, you can call Reset followed by MoveNext.

열거자는 컬렉션이 변경되지 않은 상태로 유지되는 한 유효한 상태를 유지합니다.An enumerator remains valid as long as the collection remains unchanged. 요소를 추가, 수정 또는 삭제하는 등 컬렉션을 변경하면 열거자가 무효로 되어 이를 다시 유효화할 수 없으며 다음에 MoveNext 또는 Reset을 호출할 때 InvalidOperationException이 발생합니다.If changes are made to the collection, such as adding, modifying or deleting elements, the enumerator is irreversibly invalidated and the next call to MoveNext or Reset raises an InvalidOperationException . MoveNextCurrent 사이에 컬렉션이 수정되면 열거자가 이미 무효로 되었어도 Current는 컬렉션이 설정된 요소를 반환합니다.If the collection is modified between MoveNext and Current, Current will return the element that it is set to, even if the enumerator is already invalidated.

열거자는 컬렉션에 배타적으로 액세스하지 못하므로 컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. 컬렉션이 동기화된 경우에도 다른 스레드에서 컬렉션을 수정할 수 있습니다.Even when a collection is synchronized, other threads could still modify the collection. 이렇게 하면 열거자가 예외를 발생시킵니다.This causes the enumerator to raise an exception. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용으로 인해 발생한 예외를 catch하면 됩니다.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

적용 대상