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 | |
---|---|---|
Current | Ruft das CachedDataItem an der aktuellen Position des Enumerators ab. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
Equals | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) | |
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.) | |
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) | |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) | |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) | |
MoveNext | Setzt den Enumerator auf das nächste CachedDataItem von CachedDataItemCollection. | |
Reset | Setzt den Enumerator auf seine ursprüngliche Position vor dem ersten CachedDataItem in der Auflistung. | |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Zum Seitenanfang
Explizite Schnittstellenimplementierungen
Name | Beschreibung | |
---|---|---|
IEnumerator.Current | Eine Beschreibung dieses Members finden Sie unter Current. | |
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.