C# の例(6)
「ブラウザーで計算する場合」でサーバー側でも計算していましたが、これは必要ないので修正します。NumbersServer クラスの GetNumbers メソッドを、以下のように値を返すだけに変更します。
private Numbers GetNumbers() { return generator_server.Current; }
この場合、yield を使ったものと、IEnumerable<T> インターフェイスのクラス IteratorImpl を作ったものは以下のようにコンストラクターで generator_server.MoveNext() を1回呼び出します。これは IEnumerable<T> を使ったバージョンでは GenerateDecimalServer() を呼び出しただけでは何も行われないので、最初の値が取得できないためです。
public NumbersServer()
{
generator_server = GenerateDecimalServer().GetEnumerator();
generator_server.MoveNext();
}