2011-12-15 20 views

Respuesta

2

Ya no existe nada en C# para hacer tal cosa.

Tienes razón IEnumerator's Current property se define como un getter solamente.

Tendría que escribir una nueva clase y/o interfaz para admitir tal cosa.

interface IOutputable<T> { 
    IOutputer<T> GetOutputer(); 
    } 

interface IOutputer<T> { 

    T Current { set; } 

    bool MoveNext(); 
    void Reset(); 
    } 
2

AFAIK un iterador de salida es una forma de crear una secuencia de objetos. Hay una gran cantidad de formas de hacer eso en C#. Por ejemplo, usando un Stack. En vez de hacer un incremento de estilo C++ operación/asignar que haría un empujón:

var sequence = new Stack<int>(); 
sequence.Push(1); 
sequence.Push(2); 

A menos que tenga una aplicación muy específica para ello, es probable que haya ningún beneficio al tratar de emular a los iteradores de salida en C#.

+0

Esta debería ser la respuesta aceptada. El enfoque de MerickOWA puede funcionar, pero no es la forma C# de hacer las cosas. – dan04

0

Dependiendo de lo que estés tratando de hacer, un yield return podría hacer lo que estás buscando también.

Cuestiones relacionadas