Compartir a través de


CachedDataHostItemEnumerator (Clase)

Recorre en iteración una CachedDataHostItemCollection.

Jerarquía de herencia

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataHostItemEnumerator

Espacio de nombres:  Microsoft.VisualStudio.Tools.Applications
Ensamblado:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (en Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Sintaxis

'Declaración
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataHostItemEnumerator _
    Implements IEnumerator(Of CachedDataHostItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataHostItemEnumerator : IEnumerator<CachedDataHostItem>, 
    IDisposable, IEnumerator

El tipo CachedDataHostItemEnumerator expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Current Obtiene CachedDataHostItem en la posición actual del enumerador.

Arriba

Métodos

  Nombre Descripción
Método público Equals Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público MoveNext Desplaza el enumerador al siguiente CachedDataHostItem de la CachedDataHostItemCollection.
Método público Reset Establece el enumerador en su posición inicial, que es delante del primer CachedDataHostItem de la colección.
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfacesPropiedad privada IEnumerator.Current Para obtener una descripción de este miembro, vea Current.
Implementación explícita de interfacesMétodo privado IDisposable.Dispose Libera todos los recursos utilizados por el objeto CachedDataHostItemEnumerator.

Arriba

Comentarios

Tanto Visual Basic como C# contienen una instrucción que oculta la complejidad de los enumeradores (foreach en C# y For Each en Visual Basic). Use la instrucción adecuada para el lenguaje que utilice, en lugar de manipular directamente el enumerador.

Los enumeradores se pueden utilizar para leer los datos de la colección, pero no para modificar la colección subyacente.

Inicialmente, el enumerador se coloca antes del primer elemento de la colección. El método Reset también devuelve el enumerador a esta posición. En ella, si se establece la propiedad Current, se provoca una excepción. Por lo tanto, se debe llamar al método MoveNext para desplazar el enumerador hasta el primer elemento de la colección antes de leer el valor de Current.

Current devuelve el mismo objeto hasta que se llama a MoveNext o a Reset. MoveNext establece Current en el elemento siguiente.

Si MoveNext pasa el final de la colección, el enumerador se coloca detrás del último elemento de la colección y MoveNext devuelve false. Cuando el enumerador está en esa posición, las llamadas posteriores a MoveNext también devuelven false. Si la última llamada al método MoveNext ha devuelto false y se realiza una llamada a la propiedad Current, se produce una excepción. Para volver a establecer el valor de Current en el primer elemento de la colección, se puede llamar primero al método Reset y después al método MoveNext.

Un enumerador sigue siendo válido mientras la colección no cambie. Si se realizan cambios en la colección (como agregar, modificar o eliminar elementos), el enumerador queda invalidado de forma definitiva y la siguiente llamada a MoveNext o a Reset produce una excepción InvalidOperationException. Si la colección se modifica entre MoveNext y Current, Current devuelve el elemento en el que está establecido, aunque el enumerador ya haya quedado invalidado.

El enumerador no tiene acceso exclusivo a la colección; por lo tanto, la enumeración a través de una colección es un procedimiento que, en esencia, no es seguro para la ejecución de subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, es posible bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.Tools.Applications (Espacio de nombres)