Collectionクラスのキーは文字列オンリー

ヘルプによれば下記の通り。

省略可能です。コレクションの各メンバの処理をするときに、位置を表す数値の代わりに使用できる重複しない文字列を文字列式で指定します。

文字列しか使えないと知らずに整数値で.Add "value", 1とかしてて「型が一致しません」エラーを起こしてしまった。疎な配列を作りたいのでCollectionクラスを使っていたのだけど、見事に裏切られてしまった。もしかしたらScripting.Dictionaryでは大丈夫なのかもしれないけど(PerlのHashと同じというのが売りだし)、金曜日だし確かめる元気ない。orz

ヘルプを見ればすぐに解決するけど、こうゆうのってコンパイルエラーにしてほしいなー。実行時エラーだとデバッグの手間が増える。

VB6 コレクション: 使えないプログラマー読んで気がついたのだけど、整数値をキーに.Addできない仕様なのはおそらく.Item()に挿入順序のIndexを渡しても引けるからなのかも知れない。キーに整数値を許してしまうと、.Item()で整数値を受け取ったときにキーなのかIndexなのか区別が付かない。

そう言えば、1年くらい前にgoogle:型が一致しませんするとありとあらゆるサイトのエラーページが引っかかってたけど、ASPエラーのページはインデックスするのをやめたのかな? > Google
もちろん、ASP.NETへの移行が進んだというのもあるのだろうけど、500.100エラーのページをカスタマイズしないで使っているサイトがASP.NETへの移行が順調に進んでいるとは考えにくい。