2012-04-11 4 views
0

私は、いつでも辞書のいくつかのクラスだけを保持する.NETの辞書(class Cache<K, V> : Dictionary<K, V>)を利用するキャッシュクラスを作成しています。新しいアイテムが追加されると、キャッシュが大きくなりすぎると古いアイテムが削除されます。.NETの辞書をオーバーライドする方法<K,V>配列検索 '[]'?

私は追加、削除、クリアを行っていますが、誰かが辞書の配列検索[]を使用してキーポイントのクラスを変更するとキャッシュがそれ以上古いものではないことをキャッシュが認識できるようにアイテムを更新します。

イベントは可能ですか?

答えて

4

Dictionary<TKey, TValue>から派生しないでください。代わりに、IDictionary<TKey, TValue>をクラスに実装し、キャッシュのバックアップにはDictionary<TKey, TValue>の参照を使用します。つまり、継承の代わりに合成を使用します。

+0

...どの時点で、あなたの特定のシナリオを 'TValue this [TKey key] 'プロパティで処理する必要があることは明らかです。 – Rawling

+0

あなたは私の友達です –

関連する問題