バッキングコレクションに書き込むことができるある種のイテレータ/列挙子を探しています。私が理解しているように、C# 列挙子は読み取り専用です。
質問する
184 次
3 に答える
3
私の知る限り、出力イテレータは一連のオブジェクトを作成する方法です。C# でこれを行う方法は無数にあります。たとえば、 を使用しStack
ます。C++ スタイルのインクリメント/割り当て操作を行う代わりに、プッシュを行います。
var sequence = new Stack<int>();
sequence.Push( 1 );
sequence.Push( 2 );
非常に特殊なアプリケーションがない限り、C# で出力反復子をエミュレートしようとしてもおそらくメリットはありません。
于 2011-12-15T15:37:22.467 に答える
2
C# には、そのようなことを行うものは何もありません。
そうです、IEnumerator の Current プロパティは getter のみとして定義されています。
そのようなことをサポートするには、新しいクラスやインターフェースを作成する必要があります。
interface IOutputable<T> {
IOutputer<T> GetOutputer();
}
interface IOutputer<T> {
T Current { set; }
bool MoveNext();
void Reset();
}
于 2011-12-15T15:23:41.173 に答える
0
何をしようとしているのかによっては、yield return
あなたが探していることもできるかもしれません。
于 2011-12-15T15:58:22.553 に答える