過去の遺産を新しく書き換える仕事中。新バージョンでは2.0で動かすことになるようだ。
1.1でArrayList大好きコードを書いていたので、推奨されないと聞きかじり、ちょっと2.0の新機能を意識する気分になった。
で、ジェネリックな話に行き当たる。
HashtableはDistionalyになって、ArrayListはListにして型指定をちゃっちゃとつけて。これはかなり2.0なんじゃね?な気分でリリースしたあと、直接関係のないダウンキャストが気になって仕方なくなった。
。。。いや、過去の遺産でも普通にダウンキャストして使ってるし、トラブルも出てないし、そんなに汎用性あるもの作ってるわけじゃないし。動けばいいやん動けば、というポリシーになにも揺らぎはないものの、ものはついでな気分で時間を割くことにした。
Google先生にいろいろ助けてもらいながらその解決策を考えていたところで、ジェネリックの話にまた引っかかる。
つーかこれいいね。
public class IndexedKeyValue <TKey,TValue> : KeyedCollection<TKey, KeyValuePair<TKey,TValue>>
{
protected override TKey GetKeyForItem(KeyValuePair<TKey,TValue> item){ return item.Key;}
}
。。。エラー処理とかwhere制限とかはとりあえず後回しで。
先日のDataSource問題も一気に解決。機嫌が良い。
んー。brの幅広すぎ。