CachedDataItemEnumerator-Klasse

Durchläuft eine CachedDataItemCollection.

Vererbungshierarchie

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator

Namespace:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Syntax

'Declaration
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataItemEnumerator _
    Implements IEnumerator(Of CachedDataItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataItemEnumerator : IEnumerator<CachedDataItem>, 
    IDisposable, IEnumerator

Der CachedDataItemEnumerator-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Current Ruft das CachedDataItem an der aktuellen Position des Enumerators ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Equals Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode MoveNext Setzt den Enumerator auf das nächste CachedDataItem von CachedDataItemCollection.
Öffentliche Methode Reset Setzt den Enumerator auf seine ursprüngliche Position vor dem ersten CachedDataItem in der Auflistung.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)

Zum Seitenanfang

Explizite Schnittstellenimplementierungen

  Name Beschreibung
Explizite SchnittstellenimplementierungPrivate Eigenschaft IEnumerator.Current Eine Beschreibung dieses Members finden Sie unter Current.
Explizite SchnittstellenimplementierungPrivate Methode IDisposable.Dispose Gibt alle vom CachedDataItemEnumerator verwendeten Ressourcen frei.

Zum Seitenanfang

Hinweise

Visual Basic und C# verfügen beide über eine Anweisung, die die Komplexität des Enumerators (foreach in C# und For Each in Visual Basic) vermeidet.Verwenden Sie die entsprechende Anweisung für die verwendete Sprache, anstatt den Enumerator direkt zu bearbeiten.

Mit Enumeratoren können die Daten in der Auflistung gelesen werden, sie können jedoch nicht zum Ändern der zugrunde liegenden Auflistung verwendet werden.

Anfänglich wird der Enumerator vor dem ersten Element in der Auflistung positioniert.Die Reset-Methode fügt den Enumerator auch wieder an dieser Position ein.An dieser Position löst das Setzen der Current-Eigenschaft eine Ausnahme aus.Daher muss der Enumerator durch einen Aufruf der MoveNext-Methode auf das erste Element der Auflistung festgelegt werden, bevor der Wert von Current gelesen werden kann.

Current gibt solange dasselbe Objekt zurück, bis MoveNext oder Reset aufgerufen wird.MoveNext legt Current auf das nächste Element fest.

Wenn MoveNext das Ende der Auflistung erreicht, wird der Enumerator hinter dem letzten Element in der Auflistung positioniert, und MoveNext gibt false zurück.Wenn sich der Enumerator an dieser Position befindet, geben nachfolgende Aufrufe von MoveNext ebenfalls false zurück.Wenn der letzte Aufruf von MoveNextfalse zurückgibt, wird beim Aufrufen von Current eine Ausnahme ausgelöst.Um Current wieder auf das erste Element der Auflistung festzulegen, können Sie Reset gefolgt von MoveNext aufrufen.

Ein Enumerator bleibt gültig, solange die Auflistung nicht geändert wird.Wenn an der Auflistung Änderungen vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Entfernen von Elementen, ist der Enumerator unwiderruflich ungültig, und der nächste Aufruf von MoveNext oder Reset löst eine InvalidOperationException aus.Wenn die Auflistung zwischen MoveNext und Current geändert wird, gibt Current das Element zurück, auf das der Enumerator festgelegt wurde, auch wenn er bereits ungültig ist.

Der Enumerator erhält keinen exklusiven Zugriff auf die Auflistung. Daher stellt die Enumeration einer Auflistung systembedingt keine threadsichere Prozedur dar.Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst.Sie können während der Enumeration Threadsicherheit gewährleisten, indem Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen abfangen, die durch Änderungen ausgelöst werden, die von anderen Threads vorgenommen werden.

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.Tools.Applications-Namespace