Pregunta

Yo no entiendo muy bien lo que el uso de IEnumerator de las Colecciones de C # es. ¿Qué es lo utiliza y por qué se debe utilizar?

He intentado buscar en línea en http://msdn.microsoft .com / es-es / library / system.collections.ienumerator.aspx pero este artículo no tiene mucho sentido. La razón que pido es en Unity3d motor de juego, se utiliza junto con la función de fluencia. Estoy tratando de dar sentido a la razón para el uso de IEnumerator.

¿Fue útil?

Solución

La interfaz IEnumerator, cuando se implementa por una clase permite que se itera a través de el uso de la incorporada en el sintaxis foreach.

En la clase que necesita ser iterados para la interfaz IEnumerator define una firma del método para la función GetEnumerator que los controles en bucle a través del objeto.

public IEnumerator<OrderLine> GetEnumerator()
    {
        for (int i=0;i<maxItems;i++) 
        {
            yield return item[i];
        }
    }

Como se puede ver en este ejemplo, el rendimiento declaración le permite devolver el control a la persona que llama sin perder su lugar en la enumeración. El control se pasará de nuevo a la línea después de la declaración de rendimiento cuando la persona que llama le pega el siguiente incremento del bucle foreach.

Otros consejos

Se utiliza raramente IEnumerator explícitamente, pero hay una gran cantidad de métodos de extensión que el trabajo con él, así como la foreach. Todas las colecciones de ponerlo en práctica, y es un ejemplo del iterador.

Es bastante simplemente una interfaz que permite a los objetos para llevar a cabo las operaciones de fácil iterar sobre colecciones. Se podría utilizar para crear objetos que iterar sobre una colección personalizada con una construcción foreach o la sintaxis similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top