ActivityCollection.GetEnumerator Yöntem

Tanım

için bir numaralandırma arabirimi ICollectionuygular.

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)

Döndürülenler

Örnekte yinelenebilir ReadOnlyCollectionBase bir numaralandırıcı.

Uygulamalar

Açıklamalar

Numaralandırıcılar yalnızca koleksiyondaki verilerin okunmasını etkinleştirir. Temel alınan koleksiyonu değiştirmek için numaralandırıcıları kullanamazsınız.

Başlamak için, numaralandırıcı koleksiyondaki ilk öğeden önce konumlandırılır. Reset ayrıca numaralandırıcıyı bu konuma geri getirir. Bu konumda çağrısı Current bir özel durum oluşturur. Bu nedenle, değerini MoveNextokumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için çağrısında Current bulunmalısınız.

Currentveya MoveNext çağrılana kadar Reset aynı nesneyi döndürür. MoveNext bir sonraki öğeye ayarlar Current .

Koleksiyonun sonu geçirildikten sonra, numaralandırıcı koleksiyondaki son öğeden sonra konumlandırılır ve çağrılır MoveNextfalse. döndürülen son çağrı MoveNextfalseise çağrısı Current bir özel durum oluşturur.

Koleksiyonun ilk öğesine yeniden ayarlamak Current için öğesini ve ardından Resetöğesini çağırabilirsinizMoveNext.

Bir numaralandırıcı, koleksiyon değişmediği sürece geçerli kalır. Koleksiyonda öğe ekleme, değiştirme veya silme gibi değişiklikler yapılırsa, numaralandırıcı geri alınamaz şekilde geçersiz kılınmış olur ve bir sonraki çağrısı veya MoveNextReset oluşturur InvalidOperationException . Koleksiyon ile MoveNextCurrent arasında Current değiştirilirse, numaralandırıcı zaten geçersiz kılınmış olsa bile, olarak ayarlandığı öğeyi döndürür.

Numaralandırıcının koleksiyona özel erişimi yoktur; Bu nedenle, bir koleksiyon aracılığıyla numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlenmiş olsa bile, diğer iş parçacıkları koleksiyonu yine de değiştirebilir. Bu, numaralandırıcının özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Şunlara uygulanır