2011-11-21 79 views
3

的我試圖從Dictionary<K,V>繼承,但我的問題是,正在查詢的Dictionary.Keys的時候,我想覆蓋它們。 (即KeyCollection)的字典。重寫字典<K,V> .KeyCollection

這怎麼解決?

感謝

回答

7
  • 包封物Dictionary<K,V>

  • 實現IDictionary<K,V>

public new YourType Keys 
{ 
    get 
    { 
     return yourVersion; 
    } 
} 

注:

  • IDictionary<K,V>.Keys有類型ICollection<Key>

  • Dictionary<K,V>.Keys的類型爲Dictionary<K, V>.KeyCollection但它的標記爲sealed,所以你將無法繼承它,所以選項1似乎更現實。

+3

我** **絕對推薦你第一個選項(封裝'字典'和'實現的IDictionary '),否則,當你投你的字典的IDictionary''你會發現,你的'Keys'財產由於使用'new'關鍵字而被忽略。 – Justin

相關問題