Freigeben über


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 Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (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.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (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 von 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 befindet sich der Enumerator vor dem ersten Element in der Auflistung. 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 nach 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 MoveNext false 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 so lange gültig, bis die Auflistung 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 gesetzt wurde, auch wenn er bereits ungültig ist.

Der Enumerator hat keinen exklusiven Zugriff auf die Auflistung. Daher ist die Enumeration einer Auflistung systemintern keine threadsichere Prozedur. 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. Um Threadsicherheit während der Enumeration zu garantieren, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die durch Änderungen durch andere Threads verursachten Ausnahmen auffangen.

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