Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

IEnumerator.Current (Propiedad)

Obtiene el elemento actual de la colección.

Espacio de nombres:  System.Collections
Ensamblado:  mscorlib (en mscorlib.dll)

Object Current { get; }

Valor de propiedad

Tipo: System.Object
Elemento actual de la colección.

Después de crear un enumerador o después de llamar al método Reset, es necesario llamar al método MoveNext para desplazar el enumerador hasta el primer elemento de la colección antes de leer el valor de la propiedad Current; de lo contrario, la propiedad Current queda sin definir.

Current también producirá una excepción si la última llamada a MoveNext ha devuelto false, lo que indica el final de la colección.

Current no mueve la posición del enumerador, y las siguientes llamadas a Current devuelven el mismo objeto hasta que se llama a MoveNext o a Reset.

Mientras no se modifique la colección, el enumerador seguirá siendo válido. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida definitivamente 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.

En el ejemplo de código siguiente se muestra la implementación de las interfaces IEnumerator para una colección personalizada. En este ejemplo, no se llama explícitamente a Current, pero se implementa para admitir el uso de foreach (for each en Visual Basic). Este ejemplo de código forma parte de un ejemplo más extenso de la interfaz IEnumerator.


public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft