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 Objekt mit dem aktuellen Objekt identisch ist. (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.) | |
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 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.