2011-12-15 20 views

答えて

2

このようなことを行うためにC#には何も存在しません。

あなたは正しいIEnumeratorのCurrentプロパティはゲッターとしてのみ定義されています。

このようなことをサポートするには、新しいクラスやインタフェースを作成する必要があります。

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

interface IOutputer<T> { 

    T Current { set; } 

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

AFAIK出力イテレータは、一連のオブジェクトを作成する方法です。 C#でこれを行うには無数の方法があります。たとえば、Stackを使用します。代わりに、C++スタイルの増分を行うの/あなたがプッシュを行いたい操作を割り当てる:あなたはそれのために非常に特定のアプリケーションを持っていない限り、C#で出力イテレータをエミュレートしようとしている中に何のメリットはおそらくありません

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

+0

これは受け入れられる回答である必要があります。 MerickOWAのアプローチはうまくいくかもしれませんが、C#のやり方ではありません。 – dan04

0

あなたがやろうとしていることに応じて、yield returnもあなたの探していることを行う可能性があります。

関連する問題