Tengo una clase que implementa IEnumerator<string>
. Vea a continuación:¿Por qué necesito IEnumerator.Current en una clase que implementa IEnumerator <T>?
public class MyClass : IEnumerator<string>
{
public bool MoveNext()
{
//....
}
//Implement other required methods....
//Confusion lies below:
public string Current { get { return this.CurrentLine; } }
//Why do I need to implement IEnumerator.Current?! In my tests, it's not even called during my iteration
object IEnumerator.Current { get { throw new NotImplementedException(); } }
}
Además del hecho de que la propiedad .Current existe tanto en la interfaz y la interfaz IEnumerator<T>
IEnumerator
(que hereda IEnumerator<T>
), ¿cuál es el punto de aplicación? Como se ve arriba, ni siquiera se llama.
+1 para dar un ejemplo de cómo se podría llamar a la implementación de IEnumerator.Current en este caso. – contactmatt