2009-10-20 135 views
3

有沒有什麼辦法可以將Dictionary封裝成像DataDictionary這樣的新類型,這樣就可以不用在需要改變定義的地方使用它,而是可以在少數幾個地方改變它。或者我應該把這個包裝在另一個只暴露我需要的方面的類中?如何將泛型組合的概念封裝成新類型?

回答

4

字典是不密封的,所以如果你想有一個正確的分型,做

class DataDictionary<K, V> : Dictionary<K,V> 
{ 
} 

而另一種選擇是:

class DataDictionary<K, V> 
{ 
    private Dictionary<K,V> _data; 

} 

,讓你更自由地設計自己的類型。
如果你指的是「如何消除類型參數」,使用這樣的:

class DataDictionary : Dictionary<string, int> 
{ 
} 
1

可以使用您的代碼文件的頂部指令中使用。

using DataDictionary = Dictionary<int,int> 

但是如果你有很多的代碼文件,封裝或者繼承使用此數據字典是更加首選。