言語を変わるたびにゲーム内のオブジェクトプールを作り直すのが面倒だ。だがその言語の特性をつかむ練習としてはいいね。
public class ActorPool<T, ST, SP> : IActorPool, IEnumerator<T>, IEnumerable<T> where T : Actor<ST, SP>, new() where ST : ActorState, new() where SP : ActorSpec<ST>
クラス宣言だけで場所食いすぎ。foreachのためのIEnumerable.GetEnumeratorメソッドとかIEnumerator.Currentプロパティとかを、System.Collections用とSystem.Collections.Generic用の両方分実装させられるのだが、こんなもんなのか?後方互換性のためかもしれんが、面倒だ。