IEnumerable(T)とカスタムIEnumerator(T )を実装するカスタム コレクションを作成しました。
また、次のようなカスタム コレクションに Add() メソッドを追加しました。
public void Add(T item)
{
T[] tempArray = new T[_array.Length + 1];
for (int i = 0; i < _array.Length; i++)
{
tempArray[i] = _array[i];
}
tempArray[_array.Length] = item;
_array = tempArray;
tempArray = null;
}
実装は、この例http://msdn.microsoft.com/en-us/library/system.collections.ienumerator.aspxに基づいています。
配列で foreach ループを実行するとき、コレクションの変更 (ループ内で Add() を呼び出すなど) を防ぎ、新しい InvalidOperationException をスローしたいと考えています。どうすればそれができるでしょうか?