投稿者 るしぇ  (社会人) 投稿日時 2010/3/17 18:35:13
> エラーがスローされた場合に最大値を大きくする事をよく考えてから
> 実装させたいと思います。
いや、考え方が逆。

コレクションの場合、Count プロパティを合わせて実装します。
つまり、事前にキー情報の数を取得し、登録されているキー情報の数だけ
処理します。しかし、
> public Keys this[int index]
だけを抜き出して考えると、index を自由に指定できますよね。だから、
想定外の index が指定されたらエラーとする。それで処理終了です。
エラーを出したくないなら、事前に Count プロパティを確認してから
その数だけ処理するよう、プログラミングする側で対処します。クラスに
実装しません。できません。

> エラーがスローされた場合に最大値を大きくする事をよく考えてから
最大値を大きくしたところで、その index に対応するキー情報は、
「存在しない」わけですから、対応できるはずが無いのです。

このあたりは、既存の ListView などを参考に、既存のコントロールが
どのように設計されているかを観察してみてください。